AngularJS调用Controller函数

时间:2015-08-04 13:42:06

标签: angularjs

抱歉这个相当基本的问题,但我真的是AngularJS的初学者。 所以我有一个像这样的反对者(就像这里解释的那样:https://github.com/johnpapa/angular-styleguide):

(function() {
'use strict';

angular
    .module('project.management')
    .controller('ManagementController', ManagementController);

function ManagementController() {
    var vm = this;
    vm.getUsersBySearchString= getUsersBySearchString;

    ////////////

    function getUsersBySearchString(searchString) {
        alert('get User By searchstring: ' + searchString);         
    }
};
})();

现在我的模板中有一个HTML片段,我真的不知道如何调用函数getUsersBySearchString(searchString)。我试过这个:

<div ng-controller="vm">
<form class="well form-search">
    <label>Usersuche:</label>
    <input type="text" ng-model="term" class="input-medium search-query" placeholder="Username">
    <button type="submit" class="btn" ng-click="getUsersBySearchStringgetUsersBySearchString()">Suchen</button>
</form>
<pre ng-model="result">
{{result}}
</pre>
   </div>

但我不知道该放什么

<div ng-controller="vm">

以及如何调用该方法。 非常感谢您的帮助!

1 个答案:

答案 0 :(得分:5)

<div ng-controller="vm">

这是不正确的。您没有名为&#34; vm&#34;的控制器。您的控制器名为ManagementController

用例的语法是

<div ng-controller="ManagementController as vm">

要调用该函数,您可以使用

ng-click="vm.getUsersBySearchString(term)"

请注意,您在HTML中选择的别名与您在控制器代码中为this选择的别名没有任何关系。你很可能会使用

<div ng-controller="ManagementController as managementCtrl">

ng-click="managementCtrl.getUsersBySearchString(term)"