我是AngulatJs(1.4)的新手。我的Angular脚本创建了两个按钮(加上&减号)
这样用户可以增加/减少产品的数量。它工作正常。但是,当我单击更新时,它会再次加载页面并将数量重置为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>
答案 0 :(得分:1)
当然,那是可能的。只需在控制器中设置它:
myapp.controller('additctl',function($scope){
$scope.quantity = <%=product['qty'].to_i%>;
请务必从value
。
<input>
属性
如果你的JS在一个单独的文件中,你也可以这样做:
$scope.quantity =
。<input type="number" ng-model="quantity"
ng-init="quantity = <%=product['qty'].to_i%>"
min="1" max="99" required>
ng-init
将在创建元素时运行一次。