我尝试从指令更新变量的值,但是当我在函数中使用它时,它是未定义的。
指令:
link: function (scope, elem, attrs) {
elem.bind('click', function () {
scope.$apply(function () {
scope.UserName = elem.html();
});
scope.$apply("MyFunc()");
});
}
控制器:
$scope.MyFunc = function myfunction() {
OrderService.ServiceFunc($scope.UserName, $scope.Param2).success(
function (data) {
$scope.MyData= data;
});
}
在控制器中,$ scope.UserName未定义。
我尝试使用范围。$ apply()(在几个版本中) - 没有帮助。 还有“范围。$ apply(”MyFunc()“);”执行在控制器范围内定义的函数,但由于某种原因,我不会影响我的范围变量。
当我在这个变量+ alert上添加$ watch时 - 它唯一一次警告只是在它未定义的开始时,尽管调试显示代码在指令中值发生变化时到达行( $ watch没有提醒那一刻)
谢谢。
答案 0 :(得分:0)
您可以通过属性将指令挂钩到函数。
看看这个例子,添加一个带有$ apply按钮结构的指令 http://plnkr.co/edit/ZrSkaT0yuB4UWKH8h2Mn?p=preview
你基本上在你的指令中创建一个属性,将它绑定到该函数,然后基本上将其应用于单击绑定。