簡體   English   中英

角度指令更新父控制器對象

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM