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