从Angular应用程序事件中调用方法

时间:2017-02-02 00:15:13

标签: angularjs

说我有这个方法:

function doThings() {
    //execute method
}

我有一些类似的HTML:

<input type="button" value="Click Me" ng-click={{ doThings() }}/>

这会正确调用doThings()方法吗?我会把方法声明放在哪里?在控制器中,也许?我是AngularJS的新手,所以请保持温柔:)

2 个答案:

答案 0 :(得分:0)

你有一个命名函数,对$scope或控制器中的viewmodel变量没有隐式附件,因此不会触发。

要使其发射,您必须将其绑定到$scope ...

$scope.doThings = doThings;

...或者将其定义为VM变量,然后在视图中调用

var vm = this;
vm.doThings = doThings;

// HTML
// assuming your controller is bound to vm through its directive
// or through ng-controller="Controller as vm"

<input type="button" value="Click Me" ng-click={{vm.doThings()}}>

答案 1 :(得分:0)

这几乎是使用doThings()函数调用时非常基本的角度应用程序设置的标准方式。工作示例:

&#13;
&#13;
var app = angular.module('myApp', []);

app.controller('myCtrl', function($scope) {
  $scope.doThings = function() {
    alert('I do some things!');
  }
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<div ng-app="myApp" ng-controller="myCtrl">
  <input type="button" value="Click Me" ng-click="doThings()" />
</div>
&#13;
&#13;
&#13;

w3schools有很好的教程:http://www.w3schools.com/angular/default.asp