Javascript 在$scope对象数组上使用.push()不会';t将推送对象添加到数组中
我正在尝试接受来自表单的用户输入。我可以成功访问输入并将数据从对象打印到控制台,但当我尝试将此对象推送到存储在控制器中的对象数组时,它不起作用 下面是我的一段代码:Javascript 在$scope对象数组上使用.push()不会';t将推送对象添加到数组中,javascript,arrays,angularjs,Javascript,Arrays,Angularjs,我正在尝试接受来自表单的用户输入。我可以成功访问输入并将数据从对象打印到控制台,但当我尝试将此对象推送到存储在控制器中的对象数组时,它不起作用 下面是我的一段代码: $scope.dogs = [ { name: "Blinky", age: "2", owner: "Martha Franklin", vaccinated: "Y" }, { name: "Spot", age: "4",
$scope.dogs = [
{
name: "Blinky",
age: "2",
owner: "Martha Franklin",
vaccinated: "Y"
},
{
name: "Spot",
age: "4",
owner: "Martha Franklin",
vaccinated: "Y"
}];
$scope.dog = {
name: "",
age: "",
owner: "",
vaccinated: ""
};
$scope.savePet = function(){
//console.log($scope.dog.name); This prints the name in the input HTML form
$scope.dogs.push($scope.dog); //THIS DOESN'T STORE IN THE INFORMATION
};
正如我前面所说的,我试图将一个对象推到一个对象数组的末尾,但它就是不起作用。这一切都发生在AngularJS模块的控制器中
$scope.dogs = [
{
name: "Blinky",
age: "2",
owner: "Martha Franklin",
vaccinated: "Y"
},
{
name: "Spot",
age: "4",
owner: "Martha Franklin",
vaccinated: "Y"
}];
$scope.dog = {
name: "john",
age: "44",
owner: "rocky",
vaccinated: "n"
};
$scope.savePet = function(){
console.log($scope.dog.name);
$scope.dogs.push($scope.dog); //THIS DOESN'T STORE IN THE INFORMATION
console.log($scope.dogs);
};
$scope.dog值为空,因此它无法工作。。。
在$scope.dog中添加值。
您的代码很好。原因是您试图将同一对象添加到数组中。数组不接受相同的对象。你需要创建一个新对象或复制(拷贝)使其工作。我不明白为什么这对你不起作用。我创建了一个JS fiddler来模拟您的代码及其完美工作 代码: HTML:
您好打开控制台查看结果
结果:见下文。
建议:如果它仍然不起作用,我建议你修改上面的代码,并进行相应的修改,然后发回,这样我们可以更好地查看它。-很好,“它就是不起作用”是什么意思?我可以假设你期待的狗没有出现在视野中吗?这个代码看起来不错。
function DogController($scope) {
$scope.dogs = [
{
name: "Blinky",
age: "2",
owner: "Martha Franklin",
vaccinated: "Y"
},
{
name: "Spot",
age: "4",
owner: "Martha Franklin",
vaccinated: "Y"
}];
$scope.dog = {
name: "",
age: "",
owner: "",
vaccinated: ""
};
$scope.savePet = function(){
$scope.dogs.push($scope.dog); //THIS DOESN'T STORE IN THE INFORMATION
console.log($scope.dogs[2]);
};
}
<div ng-app ng-controller="DogController">
<div>Hello open your console to see the result</div>
<input type="submit" ng-click="savePet()" value="Click Me"></input>
</div>