如何在控制器上设置ng-blur函数名称并将其传递给视图

时间:2016-07-07 18:26:31

标签: angularjs

我试图从我的angularjs控制器到我的html视图,设置要触发的控制器上的函数名称。

我的控制器上有这个:

$scope.functionName = 'change();';

在我的html视图中我有这个:

<input type="text" ng-blur="{{functionName}}" />

但它不起作用。我有一个表达式错误,这里是错误文本:

Error: [$parse:syntax]

1 个答案:

答案 0 :(得分:0)

通常,您不希望将函数名称传递给视图,而只是直接在控制器上调用该函数。

在您的控制器中:

$scope.handleBlur = function () {
  // do something here
};

在你看来:

<input type="text" ng-blur="handleBlur()" />

如果你确实需要动态更新blur上发生的事情,你可以让handleBlur函数包含其中的逻辑,或者你可以用你的控制器中的新实现替换handleBlur函数,如下所示:

function doSomething() { ... }
function doSomethingElse() { ... }

$scope.handleBlur = doSomething;

$scope.updateHandleBlur = function () {
  $scope.handleBlur = doSomethingElse;
};