Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法使用vm将函数绑定到作用域。符号_Javascript_Angularjs_Angularjs Scope - Fatal编程技术网

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

Javascript 无法使用vm将函数绑定到作用域。符号,javascript,angularjs,angularjs-scope,Javascript,Angularjs,Angularjs Scope,注意:这不是的副本,因为我确实实例化了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

注意:这不是的副本,因为我确实实例化了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

一切正常

这两个函数都是在单击时调用的

我想使用虚拟机。表示一致性,因此任何指向我缺少的内容的指针都将受到感谢


这实际上是可行的,但在我的例子中,控制器被注入指令中,我不确定我能否在演示中重现它。

你能分享一下你是如何尝试使用它的吗?对于那些懒惰的技术人员,你能不能创建一个plunkr:-同时使用$scope.**和vm.**是很奇怪的idea@PetrAveryanov同意。我正在改变这一点。@Thangadurai我添加了一个演示
$scope.setType = function (graphic) {
        $scope.data.tag = graphic.tag;
        console.log($scope.data)
    }