我编写了一个'对话'指令用于测试,但我不知道如何在指令中更新控制器的值
app.controller('testController',function($scope){
$scope.testValue = 'testing';
});
app.directive('testDirectvie',function(){
return function(scope,element,attr){
// this func will open the modal window,
// so how can I can the testValue from controller?Thx all
};
});
答案 0 :(得分:0)
如果添加testDirective的元素在testController中(例如<div ng-controller="testController"><span test-directive=""></span></div>
),那么只需直接从指令访问范围。
app.directive('testDirective',function(){
return function(scope,element,attr){
scope.testValue = "New value";
};
});
示例 - http://plnkr.co/edit/lN05YDr4bckrBRPiHyT7?p=preview
如果testDirective超出了testController的范围,那么你需要编写一个共享服务,你可以将它注入到两者中以便共享数据。
控制器和指令共享的服务示例 - http://plnkr.co/edit/lN05YDr4bckrBRPiHyT7?p=preview