2

我为测试编写了一个“对话框”指令,但我不知道如何更新指令中控制器的值

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
    };
});
4

1 回答 1

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

于 2013-09-01T07:25:14.447 回答