[英]Angular Directive updating Parent Controller Object
我已經使用Angular一段時間了,但是當涉及到Controller(正在使用控制器作為語法)和位於該控制器模板內部的指令之間的雙向數據綁定時,我會有些迷失。
該指令的目的實質上是作為我需要收集的一組非常特定的數據(照片,文本和其他一些東西)的輸入字段。
這個怎么運作。
我的控制器FormCtrl從應用程序緩存中加載了一些數據。 然后,它將這些數據傳遞到名為ctrl.form_fields的對象。
我需要我的指令才能訪問ctrl.form_fields以顯示數據。 此外,如果在指令中對數據進行了任何更改,則將更新FromCtrl ctrl.form_fields對象。
我已經對父控制器和子指令之間的雙向綁定進行了一些研究和實驗,但我無法弄清楚。 如果有人可以發表理論示例,我將非常感激。
我不想使用$ scope。$ parent等...來完成此操作,因為它將變得太凌亂且難以維護。 另外,我嘗試不盡可能多地使用$ scope。
干杯,院長
也許我無法正確理解您的問題,但是您無法通過屬性將對象/值傳遞給指令,並使用雙向綁定表達式嗎?
angular .module('app') .directive('myDirective', function() { return { restrict: 'E', templateUrl: 'myTemplate.html', scope: { obj: "=" // Two way decleration }, controller: function($scope) { console.log($scope.obj); } } });
<my-directive obj="ctrl.object"></my-directive>
角度的
(部分)指令的示例:
controller: FooController, // import FooController as './foo.controller';
controllerAs: 'vm',
replace: true,
scope: {
fields: '=formFields'
},
template: '<input type="text" ng-model="fields" />'
然后,在您的控制器中,可以使用參考“ vm.fields”。 您的輸入字段應為:
<input type="text" form-fields="fields" />
我還沒有測試過。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.