繁体   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