ionic雙向資料繫結失效是為什麼?

時間 2021-06-08 02:08:18

1樓:周鏡子

試了一下,確實如徐飛大神所說,如果把路由中定義的controller改成直接寫在你模板檔案中的ion-content上,就可以有效了(注意,ng-controller寫在ion-content上,如果寫在ion-view上一樣是無效的),根據徐飛大神所講解的angular作用域的知識,我猜測出現這個問題的原因應該是:

當你在路由中定義了乙個模板頁面的controller時,他會在你這個模板頁中的最頂級dom上,也就是你的頁面上的ion-view建立你的controller作用域$scope,然後由於ionic在你頁面上的ion-content沒有找到你顯示宣告的controller,所以他會自動建立了乙個匿名的作用域$scope2,那麼因為你的controller中定義了orderId,根據angular的作用域繼承關係,$scope2.orderId = $scope.orderId,這時候頁面上顯示出來的實際上是$scope2.

orderId,當你改變該值的時候,那麼在介面上會變化,但是這時候$scope.orderId這個值是並沒有變化的。所以你在controller裡面獲取的orderid沒有變化。

那麼當你把orderId改成了data.orderid後,$scope2繼承的是$scope的data物件,修改物件中的引用則$scope.data.

orderid也會改變,這就是為什麼用data.orderid可以起作用。

大家一定要看看徐飛大神的這個angular教程,受益匪淺https://

2樓:王琴

當你修改乙個原始型別的值的時候會得到乙個新的引用,所以需要用乙個object 包裝一下,用object.key。

angular的資料雙向繫結在ionic的二級view中失效?

3樓:徐飛

如果你把controller不放在路由上,而是放在ion-content內部,直接用ng-controller加上,應該就可以。

目測上面有指令自己建立了一級作用域,所以,ng-model取值的時候是通過原型繼承獲得了值,但是賦值的時候在內部作用域上建立了新變數。

細節原理看我這篇講解:https://

4樓:shao飯

使用物件

html:

okjs:

varOrder=;

$scope

.Order

=Order

;$scope.ok

=function()

React中如何實現雙向資料繫結

Houfeng 可以試試 Mota,它能給 React 帶來類似 ng vue 的雙向繫結的能力 侯鋒 在 React 工程中利用 Mota 編寫物件導向的業務模型 import React from react class Hello extends Component handleInput e...

AngularJS的資料雙向繫結是怎麼實現的?

這有簡易版的實現方式 angular雙向繫結簡單實現 本人簡單模擬了一下Angularjs的雙向資料繫結 簡單模擬了Angularjs的雙向資料繫結 獨孤求掰 知乎專欄 不自己寫指令的話直接用ng mode 就可以了我也是初學者多多指教 AngularJS 仔細看看官方的介紹文件啊 那個定時的答案不...

react不實現雙向繫結的原因是什麼呢,提高使用者動手能力?

COLDHOVER 雙向或者單向,只是實現某些功能的方式或者理念,React完全可以以雙向的方式去處理元件之間的互動邏輯Vue等也完全可以用單向的資料流維護整個應用的狀態變化.何必拘泥糾結. react強調乙個重要的概念就是資料的不可寫,唯讀資料,state就是這樣的概念,只留了乙個setstate...