在angularjs中,如何在自定义指令中使用控制器的方法?

时间:2015-08-20 23:26:30

标签: javascript html angularjs angularjs-directive

在javascript文件中,代码如下:

angular.module("amodule")
  .directive("bdirective",function(){
    return{
      scope: {
        testIsolated: '&test',
      },
      restrict:'EA',
      replace: true,
      templateUrl: "address.html",
    }
  .controller{"ccontroller",function($scope){

    $scope.test=function(){
                           w="changed"
                           return w;
                          };
    };

index.html文件中,代码如下:

<bdirective testIsolated="test()"></bdirective>
...

address.html文件中,代码如下:

<button ng-click="result=testIsolated()">Button1</button>
...

我认为单击Button1时,应运行testIsolated,然后运行test()"result"的值应更改为"changed"

但它不起作用

任何人都可以帮我搞清楚吗?

提前致谢

1 个答案:

答案 0 :(得分:1)

如果你这样做会有用:

#1 将属性更改为test

<bdirective test="test()"></bdirective>

或者,#2 更改了隔离范围绑定的定义方式:

scope: {
   testIsolated: "&"
}

,由于Angular如何规范化属性,该属性被连字符test-isolated

<bdirective test-isolated="test()"></bdirective>