1. 程式人生 > >angularJS變數變化時頁面檢視不更新問題

angularJS變數變化時頁面檢視不更新問題

頁面檢視不更新時,在方法後手動呼叫$scope.$apply()方法,手動更新檢視

舉例如下:

else if(count==1){

$scope.showImg=dataBase64;
strHead=dataBase64.indexOf('data:image/');
strFoot=dataBase64.indexOf('base64,',strHead)+7;
strValue=dataBase64.substring(strHead,strFoot);
dataBase64=dataBase64.replace(strValue,'');
$scope.sendImg=dataBase64;
}

$scope.$apply();

也可將需手動更新檢視的方法寫入$scope.$apply()中,達到同樣的目的

菜雞筆者在解決此問題後又遇到一個更玄幻的問題,input框的ng-model雙向繫結失效,除了在{{value}}中繫結值正常,在列印與傳值中等操作中都是以最初賦的值呈現,在詢問度娘嘗試後得到如下方法:

$scope.title=''; //之前的賦值
$scope.theTitle={
'title':''
}; //修改後的賦值

<input type="text" ng-model="title" />

<input type="text" ng-model="theTitle.title" />  //同理,html中的繫結也隨之變化

列印後發現數據正常,網上還有另一種方法,

$scope.ctrlScope = $scope
<input ng-model="ctrlScope.myMessage" />

大概思路是將所用物件設為一個物件中的屬性,並以物件的形式繫結值,親測可用,原理未知,可能涉及到原型鏈,scope的相關知識,專案緊,在這就不贅述了,希望這些總結對各位有幫助。

相關推薦

angularJS變數變化頁面檢視更新問題

頁面檢視不更新時,在方法後手動呼叫$scope.$apply()方法,手動更新檢視 舉例如下: else if(count==1){ $scope.showImg=dataBase64;strHead=dataBase64.indexOf('data:image/');st

解決vue在IE中,資料同步,檢視更新,開啟ie除錯資料資料檢視更新了的問題

最近專案要支援ie,這也是最令人蛋疼的地方,相信不少朋友被之前的ie低版本坑的不輕,廢話不多說,先來介紹一下,ie11中出現的奇葩現象 當你用vue加axios,發請求,請求後端介面更新資料,實現檢視同步更新,這個操作在ie本地,谷歌以及360等瀏覽器是沒有問題的,但是鄙人

屏幕尺寸發生變化頁面自適應

load() 任務 窗口 使用 side window 方法 以及 cat $(window).resize(function(){ var wH = window.innerHeight; var h = $(".content-item").he

解決vue中物件屬性改變檢視更新的問題

問題描述: 頁面input的值修改後,物件的屬性值並未發生變化 問題解決: vue雙向繫結時,writable(屬性值是否可以重寫)預設為false 將其改為true即可。 Object.defineProperty(obj, objKey, { &nbs

ViewPager切換FragmentListView資料更新

問題描述: 開發中常會遇見這樣的場景:用一個ViewPager巢狀多個Fragment來切換頁面展示資料,但是如果Fragment展示的資料是用ListView、GridView、RecyclerView等滑動控制元件來展示的,那麼這樣的Fragment經常會出現白屏,即L

Ajax 請求後臺跳轉 前端頁面更新踩坑記錄

style 返回 url direct edi pos 通過 繼續 檢查 踩坑環境:前端:Ajax post請求,json類型數據;後端 C#+MVC,前後端正常通信,但是當後臺驗證權限不通過時會RedirectToAction跳轉到登錄頁,結果現象是後臺正常執行登錄頁的渲

vue 新增屬性的數據變化,視圖能實時更新

問題 wid ID 留言 idt line 點擊 ima pen 我有這樣一個父列表,點擊展開,會請求該項的字列表,並顯示這個字列表。 我需要一個屬性來控制,這個展開和收起,所以在請求父列表時,給父列表添加了opens屬性, 我是這樣添加的。 let relalist1

解決AngularJS中ng-repeat更新檢視的問題

最近寫AngularJS專案中,遇到一個問題,先對陣列進行賦值,ng--repeat正常工作,然後對陣列進行修改,ng-repeat似乎沒有工作,檢視沒有更新。 原因是ng-repeat會已預設值排序,由於我的陣列中的元素有重複,所以ng-repeat沒有對重複的元素進行

電腦windows系統開機一直在更新頁面了機

今天早上,我開了一早上的機,您能想象嗎,內心是如何的崩潰,以為電腦就此命喪黃泉了。 不管怎麼說吧,總算是最後開機了。 在此記錄一下之後銘記此次血的教訓。 電腦之前就一直喜歡在關機的時候重新配置計算機(提示:正在配置更新計算機,請勿關閉電腦), 早上吧,我的電腦一直就在更新至

TP框架裏面當訪問存在的操作方法讓其顯示錯誤頁面

操作 pub 不顯示 public 錯誤 ech function 用戶 額外 當訪問空操作方法或者不存在的錯誤的操作方法的時候: 在該控制器頁面裏面寫一個   public function _empty(){     echo "您訪問的頁面有誤";   } 的

多態:多態指的是編譯類型變化,而運行類型

span system rgs args style color new ack ani 多態:多態指的是編譯時類型變化,而運行時類型不變。 多態分兩種: ① 編譯時多態:編譯時動態重載; ② 運行時多態:指一個對象可以具有多個類型。 對象是客觀的,人對對象的認識是主

vue ,v-for循環對象,是深度克隆? 數據改變了但是頁面元素沒有更新。問題解決

深度克隆 method obj created class () assign 1.5 ssi <div id="app"> <ul > <li v-for="(val,key,idx) in list" >

JavaScript變數宣告加 “var” 與加 “var” 的區別

    最近由於需要,在學習JavaScript,首先的var就很不解,在看了好多部落格並經過一系列的程式碼試驗。有以下總結: 總結:  1. 在函式內部的變數,加var 是區域性變數;不加是全域性變數,會對函式封裝造成影響。 2. 全域性作用域,加var的

關於MYSQL進行insert操作,存在則更新存在則插入的解決辦法

在專案開發中經常會遇到資料頻發插入操作且需要進行判斷,這樣會業務層多一次判斷的操作,多請求一次資料庫,造成效能問題,所以採用以下辦法解決了這個令人藍瘦的問題。。。 這裡是一個使用者運動記錄表,記錄使用者每天的運動時間,走的路程,消耗的能量和走的步數,前臺是定時一分鐘向後臺傳送

vue——路由變化頁面資料重新整理問題

每天記錄一點點,把我遇到的問題記錄下來, 希望可以幫助到更多和我遇到同樣問題的人。 問題描述:通過調介面,動態顯示幫助頁面的問題列表, 問題列表有多級,當點選的這個問題沒有下一級問題的時候跳入內容頁。 問題出在,我在電腦上做移動端頁面的時候,相繼跳到詳情頁,我想返回,點選 按鈕

vue資料繫結陣列,改變元素更新view問題

關於這個問題,官網上說的很清楚官方文件  寫個例子HTML<body> <div class="box"> <div v-for="aa in aas">{{aa}}</div> <button @click="chan

【Vue】解決路由切換,頁面更新的實用方法

前言:vue-router的切換不同於傳統的頁面的切換。路由之間的切換,其實就是元件之間的切換,不是真正的頁面切換。這也會導致一個問題,就是引用相同元件的時候,會導致該元件無法更新,也就是我們口中的頁面

Android Studio 在除錯模式下檢視了區域性變數

我在把eclipse的專案匯入到studio後進行斷電除錯,發現都檢視不了區域性變數的值,後來上網查了下,說是在gradle檔案把testCoverageEnabled設為false就可以了,試了下果然

vue陣列中資料變化但是檢視沒有更新解決方案

原文連結:http://www.cnblogs.com/sufubo/p/6906261.html#undefined 問題:在vue專案中,我更改陣列中的某一條資料,直接arr[i]=newVal ,發現頁面上陣列沒有實時重新整理; 檢視官網發現: 陣列更新檢測 變異方法 Vue 包含一組觀察陣列

DataGridView解決使用BindingList屬性改變介面更新問題

      在使用BindingList作為DataGridView的資料來源時,當BindingList<>有增加或者刪除的時候DataGridView會自動重新整理,但是當BindingList<>中屬性內容進行更新的時候介面並不會重新整理,是