如何使用angularjs在单个ng-init指令中调用多功能

时间:2015-02-11 06:47:12

标签: javascript angularjs

我只是尝试在angularjs的单个ng-init中调用两个函数但是它通过错误给我。 我的代码:

ng-init="function1();function2();"

我不知道如何正确地调用这些功能。任何人都可以给我一些想法 Thanls推进..

3 个答案:

答案 0 :(得分:5)

您可以创建一个主要功能,如" init"并调用该函数内的其他函数。

ng-init="init()"

来自您的控制器

function init() {
  function1();
  function2();
}

答案 1 :(得分:4)

查看以下链接,并查看控制台。

http://plnkr.co/edit/60Ry6hwiunAF12PZclNW?p=preview

HTML

<div ng-init='one(); two();'></div>

JS

$scope.one = function(){
  console.log('one')
};

$scope.two = function(){
  console.log('two')
};

希望这是你所期待的

答案 2 :(得分:1)

首先,这应该有效,可能之所以没有,是因为你在范围内没有这些功能。你对这个或祖先元素有ng-controller吗?

如果这样做,请确保在范围内定义了这些功能:

.controller("MainCtrl", function($scope){
  $scope.function1 = function(){...};
  $scope.function2 = function(){...};
});

其次,你不应该使用ng-init来调用函数。

<div ng-controller="MainCtrl">
</div>

而是在控制器中调用这些函数:

.controller("MainCtrl", function($scope){
  function1(); 
  function2();

  function function1(){...};
  function function2(){...};
});

来自Angular documentation on ngInit

  

ngInit的唯一合适用途是用于别名ngRepeat的特殊属性,如下面的演示所示。除了这种情况,您应该使用控制器而不是ngInit来初始化作用域上的值。