$ scope赋值不起作用 - angularjs

时间:2014-09-09 22:24:00

标签: angularjs angularjs-scope

在我的代码中,我创建了一个重置​​按钮来擦除表单。使用重置我还想要一个依赖于该输入的值也清除。在reset()函数中,$ scope.funding.startingEstimate被正确设置为零,但$ scope.funding.needed不是。此外,$ watch范围功能不应该已经处理好了吗?无论何时更改funding.startEstimate(因为它在$ scope.reset函数中成功,因此$ watch函数不应该返回零,因为$ watch函数调用computeNeeded,它将funds.startingEstimate乘以10(0 * 10等于0)。

请帮忙。

以下是我的代码:

app.js

app.controller('StartUpController',["$scope", function($scope){
    $scope.funding = {startingEstimate:0};


    $scope.computeNeeded=function(){
        console.log("test2")
        $scope.funding.needed = $scope.funding.startingEstimate * 10;
    };

    $scope.$watch('funding.startingEstimate', $scope.computeNeeded);

    $scope.requestFunding=function(){
        window.alert("Sorry, please get more customers first");
    };

    $scope.reset=function(){
        console.log("test")
        $scope.funding.startingEstimate = 0;
        $scope.funding.needed = 0;

    };


}]);

<form ng-controller="StartUpController" ng-submit="requestFunding()" ng-reset="reset()">
            Starting: <input ng-model="funding.startingEstimate" > 
            Recommendation:{{funding.needed}}
            <button type="submit" class="btn btn-primary">Request Funding </button>
            <button type="reset" class="btn btn-danger" >Reset</button>
        </form>

1 个答案:

答案 0 :(得分:2)

当我告诉你忽略了在Angular中调用reset()方法时,你会踢自己 - 而是将按钮type定义为reset所以你获得了重置表单的基本HTML功能。

我已为您添加ng-clickhttp://jsfiddle.net/z8edmpp2/