我有一个控制器如下:
(function () {
'use strict';
angular
.module('vweb')
.controller('ProfilesController', ProfilesController);
/** @ngInject */
function ProfilesController(profileService, $scope) {
var vm = this;
vm.searchTerm = '';
vm.profileService = profileService;
$scope.$on('$viewContentLoaded',
function () {
vm.searchProfiles();
});
vm.searchProfiles = function() {
alert("term: " + vm.searchTerm);
profileService.searchProfiles(vm.searchTerm)
.then(function (profiles) {
alert("Here's my profiles " + angular.toJson(profiles));
});
}
}
})();
连同输入字段(搜索字词):
<input type="text" class="search-query form-control" placeholder="Search"
ng-model="controller.searchTerm" ng-change="controller.searchProfiles()"/>
profiles.html页面的开头是:<div class="container" ng-controller="ProfilesController as controller">
使用此方法时,输入字段上的更改事件不会在控制器中触发。但是从&#39;控制器改为&#39;样式$scope
工作正常。
我使用ui-router框架而不是ng-route。 (我曾经开始的自耕农生成器为我选择了这个)。
问题:
我在最近几天刚开始有角度,但是读到控制器为&#39;更容易测试。如何使用&#39;控制器作为&#39;风格?
答案 0 :(得分:1)
According to ng-change
. You should use:
ng-change="controller.searchProfiles()"
instead of:
ng-change="controller.searchProfiles"
答案 1 :(得分:1)
在$scope.$on
函数定义之前,您正在调用searchProfiles,导致其余代码无法加载。