我是Angular JS的新手。我使用app和controller创建了一个角度代码。我要做的是在单击按钮时动态地将名称添加到数组中。
默认情况下,我的数组传递了两个值。当我给出一个输入并单击“添加”按钮时,它会首次添加该字符串。 但是当我给出另一个输入并再次单击add时,旧字符串将被新字符串替换,并且会再次添加新字符串。
以下是JSFiddle上的一段代码:http://jsfiddle.net/5DMjt/3680/
var demo= angular.module("demo",[]);
var simplecontroller = function($scope){
$scope.members = [{id:1,name:'prateek'},{id:2,name:'Ruchi'}];
$scope.addmember = function(newmember){
newmember.id = $scope.members.length+1;
$scope.members.push(newmeber);
demo.controller(simplecontroller);
}
}
这是HTML代码:
<div ng-app="demo">
<div ng-controller="simplecontroller">
<ul>
<li ng-repeat="member in members">{{member.id}}-{{member.name}}</li>
</ul>
Name<input type="Text" ng-model="inputmember.name">
</br><h2>
{{inputmember}}
</h2>
<input type="button" value="Add" ng-click="addmember(inputmember)">
</div>
</div>
请帮助!
答案 0 :(得分:2)
我分析的是push函数传递的地址就是为什么绑定仍然存在。你能做的就是传递值,就像我在下面做的那样 - :
$scope.addmember = function(newmember){
newmember.id = $scope.members.length+1;
$scope.members.push({id:newmember.id,name:newmember.name});
demo.controller(simplecontroller);
}
希望这能解决你的问题。快乐学习:)。
答案 1 :(得分:2)
您有两种选择。
每次我不建议你重新初始化它。
另一个是,用值传递参数。
$scope.members.push({id:newmember.id,name:newmember.name});
:)
答案 2 :(得分:1)
请参阅此更新的小提琴:http://jsfiddle.net/5DMjt/3689/
Name<input type="Text" ng-model="newname">
这为您提供了范围变量newname
。
<input type="button" value="Add" ng-click="addmember()">
addmember
函数使用此newname
创建新对象并将其添加到列表中:
$scope.addmember = function(){
var newmember = {};
newmember.id = $scope.members.length+1;
newmember.name = $scope.newname;
$scope.members.push(newmember);
}
答案 3 :(得分:0)
您遇到语法错误。有关详细信息,请参阅控制台错 您的变量 inputmember 未在任何位置定义。 此外,您需要推送到对象的数组新引用,因此每次键入值时,数组中的旧引用都不会更改。 这是一个工作版本。
$scope.addmember = function(newMember){
newMember.id = $scope.members.length+1;
$scope.members.push(angular.extend({}, newMember));
demo.controller(simplecontroller);
}
答案 4 :(得分:0)
https://www.npmjs.com/package/mongoose-relationship
##Many-To-Many with Multiple paths
var mongoose = require("mongoose"),
Schema = mongoose.Schema,
relationship = require("mongoose-relationship");
var ParentSchema = new Schema({
children:[{ type:Schema.ObjectId, ref:"Child" }]
});
var Parent = mongoose.models("Parent", ParentSchema);
var OtherParentSchema = new Schema({
children:[{ type:Schema.ObjectId, ref:"Child" }]
});
var OtherParent = mongoose.models("OtherParent", OtherParentSchema);
var ChildSchema = new Schema({
parents: [{ type:Schema.ObjectId, ref:"Parent", childPath:"children" }]
otherParents: [{ type:Schema.ObjectId, ref:"OtherParent", childPath:"children" }]
});
ChildSchema.plugin(relationship, { relationshipPathName:['parents', 'otherParents'] });
var Child = mongoose.models("Child", ChildSchema)
var parent = new Parent({});
parent.save();
var otherParent = new OtherParent({});
otherParent.save();
var child = new Child({});
child.parents.push(parent);
child.otherParents.push(otherParent);
child.save() //both parent and otherParent children property will now contain the child's id
child.remove()
答案 5 :(得分:0)
在推送到$ scope.members之前,您需要创建一个新对象并使用输入中的id和name填充它。