我认为这一行:
<input placeholder="Search" type="text" ng-change="searchChange()" ng-model="mySearch" ng-model-options="{debounce: 1000}">
然后我的控制器里面有:
angular.module('app.controllers', [])
.controller('listViewCtrl', ['$scope', '$stateParams', '$http',
function ($scope, $stateParams, $http) {
$http.get('http://www.domain.co.uk/api/search.php').
then(function(response) {
$scope.food = response.data;
});
$scope.searchChange = function() {
console.log($scope.mySearch);
};
}])
但是这给了我&#34; undefined&#34;。
如何在控制器中引用mySearch输入字段的值?
答案 0 :(得分:9)
您的输入字段可能位于特定范围内,该范围未正确更新。 video.addEventListener('loadeddata', function () {
if (video.readyState === 4) {
video.play();
$('#page').addClass('transition');
document.setTimeout(function(){
video.attr('style', 'visibility: hidden');
}, 750);
}
和ngIf
是创建单独子范围的指令的常见示例。 (有关范围的更多信息,请参阅this article)
为了保护自己免受此类问题的影响,您可以将变量存储在对象中。
ng-repeat
或者按照角度样式指南Y030中的建议专门命名您的控制器。
第三个选项是将变量作为参数传递给函数:
<input placeholder="Search" type="text" ng-change="searchChange()" ng-model="my.search" ng-model-options="{debounce: 1000}">
$scope.my = {search: ""};
$scope.searchChange = function() {
console.log($scope.my.search);
};