将输入无线电的值绑定到 ng-repeater 到 webSql 数据库
Bind value of input radio into ng-repeater to webSql database
这是我的代码。 DOM returns undefined
for input radio[name="Dispense"]
调用函数 AggiungiProdotto()
.
后
HTML 部分:
<ons-list ng-controller="ListaDispense">
<ons-list-header>Seleziona Dispensa</ons-list-header>
<ons-list-item modifier="tappable" ng-repeat="item in items" ng-repeat="item in items">
<label class="radio-button radio-button--list-item">
<input type="radio" name="Dispense" id="{{item.id}}" ng-model="IdDispensa" ng-value="{{item.id}}">
<div class="radio-button__checkmark radio-button--list-item__checkmark"></div>
{{item.NomeDispensa}}
</label>
</ons-list-item>
</ons-list>
Javascript 部分
$scope.AggiungiProdotto = function() {
var t = $scope.IdDispensa; //$("input[name=Dispense]:checked").val();
var n = $scope.nomeProdotto; //$("#nomeProdotto").val();
var d = $scope.DataScadenza; //$("#DataScadenza").val();
var g = $scope.GiorniPreavviso; //$("#GiorniPreavviso").val();
if(n==undefined || t == undefined){
ons.notification.alert({message: 'Inserisci il nome del prodotto e/o categoria!'});
return false;
}
else{
dbRemindUse.transaction(function(e) {
var i = "INSERT INTO prodotti (nome, iddispense, datascadenza, giornipreavviso) VALUES (?, ?, ?, ?)";
e.executeSql(i, [n, t, d, g], function() {
ons.notification.alert({message: 'Prodotto Inserito'});
}, error)
})
}
};
这是因为作用域问题 ng-repeat 创建了它自己的作用域,控制器不可用(仅适用于原始类型)。
你可以通过两种方式解决
首先:- 将 $parent 与模型一起使用。
<input type="radio" name="Dispense" id="{{item.id}}" ng-model="$parent.IdDispensa" ng-value="{{item.id}}">
第二:- 创建模型对象:-
$scope.object={
IdDispensa:""
}
<input type="radio" name="Dispense" id="{{item.id}}" ng-model="object.IdDispensa" ng-value="{{item.id}}">
小fiddle 求理解
http://jsfiddle.net/7e27har1/
这是我的代码。 DOM returns undefined
for input radio[name="Dispense"]
调用函数 AggiungiProdotto()
.
HTML 部分:
<ons-list ng-controller="ListaDispense">
<ons-list-header>Seleziona Dispensa</ons-list-header>
<ons-list-item modifier="tappable" ng-repeat="item in items" ng-repeat="item in items">
<label class="radio-button radio-button--list-item">
<input type="radio" name="Dispense" id="{{item.id}}" ng-model="IdDispensa" ng-value="{{item.id}}">
<div class="radio-button__checkmark radio-button--list-item__checkmark"></div>
{{item.NomeDispensa}}
</label>
</ons-list-item>
</ons-list>
Javascript 部分
$scope.AggiungiProdotto = function() {
var t = $scope.IdDispensa; //$("input[name=Dispense]:checked").val();
var n = $scope.nomeProdotto; //$("#nomeProdotto").val();
var d = $scope.DataScadenza; //$("#DataScadenza").val();
var g = $scope.GiorniPreavviso; //$("#GiorniPreavviso").val();
if(n==undefined || t == undefined){
ons.notification.alert({message: 'Inserisci il nome del prodotto e/o categoria!'});
return false;
}
else{
dbRemindUse.transaction(function(e) {
var i = "INSERT INTO prodotti (nome, iddispense, datascadenza, giornipreavviso) VALUES (?, ?, ?, ?)";
e.executeSql(i, [n, t, d, g], function() {
ons.notification.alert({message: 'Prodotto Inserito'});
}, error)
})
}
};
这是因为作用域问题 ng-repeat 创建了它自己的作用域,控制器不可用(仅适用于原始类型)。
你可以通过两种方式解决
首先:- 将 $parent 与模型一起使用。
<input type="radio" name="Dispense" id="{{item.id}}" ng-model="$parent.IdDispensa" ng-value="{{item.id}}">
第二:- 创建模型对象:-
$scope.object={
IdDispensa:""
}
<input type="radio" name="Dispense" id="{{item.id}}" ng-model="object.IdDispensa" ng-value="{{item.id}}">
小fiddle 求理解 http://jsfiddle.net/7e27har1/