注意:这不是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实际上有效,但在我的情况下,控制器被注入指令中,我不确定我是否可以在演示中重现它。