簡體   English   中英

角ng-單擊

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM