我有2个模块,jsTag
和mainApp
。 mainApp
注入jsTag以使用它的功能
var jsTag = angular.module('jsTag')
angular.module('mainApp', ['jsTag']);
jsTag模块有一个我将调用jsTagDirective
的指令jsTag.directive('jsTagDirective', function(){
restrict: 'E',
scope: true,
controller: 'jsTagMainCtrl',
templateUrl: 'jsTag/source/Templates/js-tag.html'
上述指令的模板中包含input
标记,ng-model
引用jsText
。我希望能够在我的mainApp
模块的控制器中捕获此模型的值。将范围更改为false确实有效 - 我可以访问mainApp中的$scope.jsText
- 但我知道这是不好的做法。但是,我无法弄清楚如何获取继承范围或隔离范围以向上传递值。
答案 0 :(得分:0)
这是一个完美的例子,为什么你应该使用孤立的范围和双向绑定。 Docs here.
JS
jsTag.directive('jsTagDirective', function () {
return {
restrict: 'E',
scope: {
jsText: '='
},
controller: 'jsTagMainCtrl',
templateUrl: 'jsTag/source/Templates/js-tag.html'
};
});
HTML
<js-tag-directive js-text="jsText"></js-tag-directive>
这将使指令使其jsText属性与父作用域同步,甚至创建所述属性。