想有在使用的基本對象是不是工作的一個AngularJS指令2的方式結合,例如:雙向綁定
<custom-directive ng-model="variable"></custom-directive>
如何才能實現這一目標?
想有在使用的基本對象是不是工作的一個AngularJS指令2的方式結合,例如:雙向綁定
<custom-directive ng-model="variable"></custom-directive>
如何才能實現這一目標?
爲了在javascript中有2種綁定方式(不僅僅是angularjs),我們必須傳遞一個對象(這是由javascript的評估策略引起的 - 可以在這裏閱讀更多關於它的內容https://en.wikipedia.org/wiki/Evaluation_strategy#Call_by_sharing)。基本上發生的事情是,當我們傳遞一個基本變量時,它通過值傳遞並重新創建,而不是通過引用傳遞。只有對象通過引用傳遞。
所以這個問題可以通過將變量的父對象,例如解決:
<custom-directive ng-model-name="variable" ng-model-parent="parentObj"></custom-directive>
,然後修改對象的指令如下:
parentObj[variable] = "whatever";
這樣,我們將保持變量與parentObj之間的連接。
另一種辦法是通過該模型與父OBJ,例如:
<custom-directive ng-model="parentObj.variable"></custom-directive>
點就是這個例子中的一個重要組成部分。其實際上最好的做法是通過angular來始終使用parentObj-dot-property傳遞變量。
更多的信息,實際上angularjs有一個關於它的文檔https://github.com/angular/angular.js/wiki/Understanding-Scopes
我才意識到,如果你的指令是不是一個內部的NG-如果它會與原始的綁定工作。也許問題在於你的綁定在ng-if中。嘗試使用ng-show代替。也許它會工作。
跑過原始這種方式:
<custom-directive ng-model="parentObj.variable"></custom-directive>
良好做法是要麼使用'點rule'(通過定義對象)/'同時限定控制器controllerAs'語法 –