ng-keyup 不执行表达式
ng-keyup doesn't execute the expression
我正在使用 angular 1.5.0-beta2
我正在尝试在文本输入上创建一个简单的 keyUp 检测。
代码 div:
<div ng-controller="IndexController">
<div class="jumbotron">
<h1>Hello and Welcome to MyAlcoholist</h1>
<p>A growing database of cocktails and drinks for your reach</p>
<hr/>
<p>
<span class="glyphicon glyphicon-search" aria-hidden="true">
Search for Cocktail
</span></p>
<p>
<input type="text" id="cocktail_search_input" ng-model="test" ng-keyup="cocktailSearchInput($event.keyCode)" />
<span id="cocktail-search-icon-span"></span>
<a href="javascript:cocktailInfo()" class="btn btn-primary">
Cocktail Info
<span class="glyphicon glyphicon-chevron-right"></span>
</a>
</div>
<div class="container">
<div class="row">
<div id="latest-drinks-div" class="col-md-3"></div>
<div id="latest-cocktails-div" class="col-md-3">
<p>blah blah blah blah blah blah</p>
</div>
<div class="col-md-3">
<p>blah blah blah blah blah blah</p>
</div>
<div class="col-md-3">
<p>blah blah blah blah blah blah</p>
</div>
</div>
</div>
</div>
我的app.js
(function(){
var app = angular.module('myalcoholist',['ngRoute']);
app.controller('IndexController', function () {
this.cocktailSearchInput = function(code) {
alert(code);
}
});
})()
我没有看到任何错误,cocktailSearchInput 函数没有被执行。
有什么想法吗?
看起来好像 cocktailSearchInput
绑定到 controller
本身(通过 this
),而不是控制器的 $scope
。
尝试将 $scope
注入 controller
,然后将函数挂起。通过这样做,该功能现在可以在 $scope
上使用,因此可以从 DOM:
访问
app.controller('IndexController', function ($scope) {
$scope.cocktailSearchInput = function(code) {
alert(code);
}
});
这是一个带有你的代码的 plunker,你会注意到我们在 keyUp 上收到警报:http://plnkr.co/edit/L3zmHk1jugbX6jrzx4i8?p=info
我正在使用 angular 1.5.0-beta2
我正在尝试在文本输入上创建一个简单的 keyUp 检测。
代码 div:
<div ng-controller="IndexController">
<div class="jumbotron">
<h1>Hello and Welcome to MyAlcoholist</h1>
<p>A growing database of cocktails and drinks for your reach</p>
<hr/>
<p>
<span class="glyphicon glyphicon-search" aria-hidden="true">
Search for Cocktail
</span></p>
<p>
<input type="text" id="cocktail_search_input" ng-model="test" ng-keyup="cocktailSearchInput($event.keyCode)" />
<span id="cocktail-search-icon-span"></span>
<a href="javascript:cocktailInfo()" class="btn btn-primary">
Cocktail Info
<span class="glyphicon glyphicon-chevron-right"></span>
</a>
</div>
<div class="container">
<div class="row">
<div id="latest-drinks-div" class="col-md-3"></div>
<div id="latest-cocktails-div" class="col-md-3">
<p>blah blah blah blah blah blah</p>
</div>
<div class="col-md-3">
<p>blah blah blah blah blah blah</p>
</div>
<div class="col-md-3">
<p>blah blah blah blah blah blah</p>
</div>
</div>
</div>
</div>
我的app.js
(function(){
var app = angular.module('myalcoholist',['ngRoute']);
app.controller('IndexController', function () {
this.cocktailSearchInput = function(code) {
alert(code);
}
});
})()
我没有看到任何错误,cocktailSearchInput 函数没有被执行。
有什么想法吗?
看起来好像 cocktailSearchInput
绑定到 controller
本身(通过 this
),而不是控制器的 $scope
。
尝试将 $scope
注入 controller
,然后将函数挂起。通过这样做,该功能现在可以在 $scope
上使用,因此可以从 DOM:
app.controller('IndexController', function ($scope) {
$scope.cocktailSearchInput = function(code) {
alert(code);
}
});
这是一个带有你的代码的 plunker,你会注意到我们在 keyUp 上收到警报:http://plnkr.co/edit/L3zmHk1jugbX6jrzx4i8?p=info