AngularJS-更改模型的值

时间:2015-12-07 11:47:44

标签: javascript angularjs

我是AngulatJs(1.4)的新手。我的Angular脚本创建了两个按钮(加上&amp;减号) 这样用户可以增加/减少产品的数量。它工作正常。但是,当我单击更新时,它会再次加载页面并将数量重置为1($scope.quantity=1;)。但是,我想将<%=product['qty'].to_i%>"的值分配给ng-model="quantity"。有可能吗?

var myapp = angular.module("mymodule", []);
myapp.controller('additctl', function ($scope) {
    $scope.quantity = 1;
    $scope.addval = function (val) {
        console.log(val);
        $scope.quantity = val + 1;
    }

    $scope.subval = function (val) {
        if (val > 0) {
            $scope.quantity = val - 1;
        }
    }
});
<form accept-charset="UTF-8" action="change_quantity" method="post">
    <div ng-controller="additctl">
        <button type="button" ng-click=subval(quantity)>-</button>
        <input type="number" ng-model="quantity" value="<%=product['qty'].to_i%>" min="1" max="99" required>
        <button type="button" ng-click=addval(quantity)>+</button>
        <input type="submit" class="btn btn-success" name="button" value="update">
    </div>
</form>

1 个答案:

答案 0 :(得分:1)

当然,那是可能的。只需在控制器中设置它:

myapp.controller('additctl',function($scope){
    $scope.quantity = <%=product['qty'].to_i%>;

请务必从value

中删除<input>属性

如果你的JS在一个单独的文件中,你也可以这样做:

  1. 从控制器中删除$scope.quantity =
  2. 设置如下值:
  3. <input type="number" ng-model="quantity"
        ng-init="quantity = <%=product['qty'].to_i%>"
        min="1" max="99" required>
    

    ng-init将在创建元素时运行一次。