[英]Angular ng-click
學習AngularJS。 嘗試從教程中更改示例。 需要ng-init值等於從腳本函數傳輸的值。 怎么做? 代碼如下:
<html>
<body>
<h2>AngularJS Sample Application</h2>
<div ng-app="mainApp" ng-controller="clickController">
<p>Total click: {{ click.clickCounter() }}</p>
<button ng-click="count = count+1"
ng-init="count=click.clickCounter()">Click Me!</button>
</div>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js">
</script>
</body>
<script>
var mainApp = angular.module("mainApp", []);
mainApp.controller('clickController', function($scope) {
$scope.click = {
count: 15,
clickCounter: function() {
var foo;
foo = $scope.click;
return foo.count;
}
};
});
</script>
</html>
問題是將click.clickCounter()的值傳輸到ng-click。
您的問題是您正在作用域的根上創建一個新的count
變量。
如果$scope.click.count
但是ng-init
ng-click
正在創建和更新$scope.count
。
這解決了問題
<button ng-click = "click.count = click.count+1" ng-init="click.count=click.clickCounter()">Click Me!</button>
編輯:如果在應用程序內添加{{count}}
,您將看到它正在創建的范圍變量。 Angular的雙刃劍之一是,如果您在視圖中定義了范圍中不存在的變量,Angular將為您創建並將其添加到范圍中。
編輯2:您的ng-init
已過時。 好像您已經創建了$scope.click
對象的count
屬性一樣,它已被初始化並具有一個值。
另請參閱小提琴: http : //jsfiddle.net/yjwskkat/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.