控制器方法

时间:2016-11-30 15:10:43

标签: javascript angularjs controller angularjs-scope angular-ngmodel

好吧,我是棱角分明的新手,之前的搜索显示,在控制器内使用'this'与'$ scope'不同。考虑到这一点,我决定只在我的应用程序中使用范围,这让我想到了我想要理解的这种奇怪的行为。

这是我的控制器和模块:

angular.module('dnd-dices',[]).controller('SingleDicerollCtrl',['$scope','DiceSet',SingleDicerollCtrl]);

function SingleDicerollCtrl($scope, DiceSet){
    $scope.dices = DiceSet;
    $scope.selectedDie = $scope.dices[0];

    $scope.roll = function(){
        $scope.result = Math.floor(Math.random() * $scope.selectedDie.max) + 1 ;
    };
}

这是我的HTML:

<select ng-options="die.label for die in dices track by die.label" ng-model="selectedDie">
</select>
<h>Result({{selectedDie.label}}):{{result}}</h>

<input type="button" ng-click="roll()" value="Roll!"/>

提问点: 当我调用 roll方法时,$scope.selectedDice变量位于其原始值($scope.selectedDie = $scope.dices[0];)中,而this.selectedDie正在根据我的ng模型进行更改(显示)在HTML中)。为什么会发生这种情况?何时应该在方法中使用此方法或$scope

提前谢谢大家

0 个答案:

没有答案