我正在创建一个简单的角度js app,但是控制器函数'GetListings()'没有触发。
<body ng-controller="pageController">
<div id="wrapper">
<h1>Find Locations</h1>
<p>Category:<br/><select id="category" name="category">
<option value="associate">associate</option>
<option value="contractor">contractor</option>
<option value="either" selected="selected">either</option>
</select></p>
<p>Enter zip code:<br/><input type="text" id="zipcode" name="zipcode" size="20"></p>
<p>Enter radius (mi):<br/><input type="text" id="radius" name="radius" size="20"></p>
<p><input type="button" id="lookup" value="lookup locations" ng-click="GetListings()"></p>
</div>
<div id="content">
<div id="mainArea">
<div class="directoryEntry" ng-repeat="listing in listings">
<h4>{{listing.name}}</h4>
</div>
</div>
</div>
</body>
这是我正在使用的角度代码:
function pageController ($scope) {
$scope.listings = [ {name : 'a' }, { name : 'b' }, { name : 'c' }, {name : 'd'}];
$scope.GetListings = function () {
console.log($scope.listings);
$scope.listings.push( {name: 'e' } );
}
}
listing.name属性正确呈现(a,b,c,d)。但是'e'没有被添加。
答案 0 :(得分:1)
更改以下行
<body ng-controller="pageController" ng-app>
至少需要在angularjs中使用ng-app
答案 1 :(得分:1)
根据您的代码,单击“查找位置”按钮时会调用GetListings()
。
根据你的评论,
它应该出现在ng-repeat中吗?它应该出现在页面上。鉴于第一个console.log没有触发,我怀疑它是否进入GetListings函数
假设您想在开始时调用GetListings()
,我已将fiddle分叉,其中“e”列在开头。您只需要在控制器中调用该函数一次即可在列表中按“e”。
答案 2 :(得分:0)
我认为您的代码没有任何问题......
我创建了一个带有div而不是body的JSFiddle项目,一切都按预期工作。你正在使用哪个版本的Angular?
<div ng-app>
<div ng-controller="pageController">
....
</div>
</div>