无法使用vm将函数绑定到作用域。符号

时间:2015-09-09 13:24:38

标签: javascript angularjs angularjs-scope

注意:这不是this question的副本,因为我确实实例化了vm。在使用之前。

我正在将控制器注入指令中。这是控制器的基本设置:

function graphicDialogController($scope, $element) {
 $scope.data = {};
 var vm = this;
 vm.open = openDialog;
 vm.setType = setType;
 //this function is available via vm.
 function openDialog(data) {
        $scope.data = data.annotation;  
    }
 //but this isn't.
 function setType(graphic) {
        $scope.data.tag = graphic.tag;
        console.log($scope.data)
    }

但是,如果我将setType直接绑定到$scope,就像这样

$scope.setType = function (graphic) {
        $scope.data.tag = graphic.tag;
        console.log($scope.data)
    }

一切正常。

ng-click上调用这两个函数。

我想用vm。为了保持一致性,所以任何指向我缺少的东西都会受到赞赏。

simplified example实际上有效,但在我的情况下,控制器被注入指令中,我不确定我是否可以在演示中重现它。

0 个答案:

没有答案