Angular JS:更新$Scope.数组通过用户输入
Angular JS: Updating $Scope.Array through user input
我创建了一个简单的angular应用程序——它包含一个字符串数组。
在前端-有一个单一的文本输入字段-当提交时,调用一个函数将该输入推入$scope.array。
$作用域的所有值。数组在同一页面上输出,位于文本输入区域下方。
我希望最新的输入与前端的数组值输出的其余部分一起显示-本质上,工作与angular的2路绑定的示例。
然而,当我提交输入值时,前端的输出没有更新——我不明白为什么。请查看下面的代码示例:
<!DOCTYPE html>
<html ng-app="App">
<head>
<title>First app - CRUD</title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.min.js"></script>
<script src="js/app.js"></script>
<style></style>
</head>
<body>
<div class="header" align="center">
<h1>CRUD Application v1</h1>
</div>
<div ng-controller="ctrl1" class="main">
Name: <input type="text" ng-model="players.name">
<button ng-click="updateValue()">submit data</button>
<br><br>
<p>{{players.name}}</p>
<p ng-repeat="player in players" ng-model="players.name" class="main">
{{player.name}}
</p>
</div>
</body>
var app = angular.module('App', []);
app.controller('ctrl1', function ($scope){
//$scope.name = ' ';
//$scope.players = {"alonso", "gerrard"};
$scope.players = [{name:'alonso'}, {name:'gerrard'}];
$scope.updateValue = function(players){
// take input value and add to collection.
// send collection via ajax to server
$scope.players.push(players.name);
$scope.name = '';
};
});
更进一步-当使用angular时,是否建议直接使用JSON对象或数组?
尝试为输入框定义一个$scope变量,并将该值添加到播放器对象的 name
属性
$scope.players = [{
name: 'alonso'
}, {
name: 'gerrard'
}];
$scope.newplayer = '';
$scope.updateValue = function() {
$scope.players.push({
name: $scope.newplayer
});
};
});
HTML: <body>
<div class="header" align="center">
<h1>CRUD Application v1</h1>
</div>
<div ng-controller="ctrl1" class="main">
Name:
<input type="text" ng-model="newplayer">
<button ng-click="updateValue()">submit data</button>
<br>
<br>
<p>{{players.name}}</p>
<p ng-repeat="player in players" class="main">
{{player.name}}
</p>
</div>
</body>
你所需要做的就是更新updatePlayer签名,删除方法参数并从输入文本框的ng-model中读取它。
这是修改后的溶液。
var app = angular.module("sampleApp", []);
app.controller("sampleController", ["$scope",
function($scope) {
$scope.players = [{
name: 'alonso'
}, {
name: 'gerrard'
}];
$scope.updateValue = function() {
$scope.players.push({
name: $scope.playersName
});
$scope.playersName = '';
};
}
]);
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.8/angular.min.js"></script>
<div ng-app="sampleApp">
<div ng-controller="sampleController">
<div class="header" align="center">
<h1>CRUD Application v1</h1>
</div>
<div class="main">
Name:
<input type="text" ng-model="playersName">
<button ng-click="updateValue()">submit data</button>
<p ng-repeat="player in players" ng-model="players.name" class="main">
{{player.name}}
</p>
</div>
</div>
</div>
相关文章:
- 使用javascript搜索具有用户输入的数组
- React Native通过Navigator将用户输入数据传递到选项卡栏IOS中的组件
- 如何使用JavaScript中的用户输入创建序列/序列
- 如何在用户输入时实例化数组
- 如何从客户端的数组中获取用户输入和返回值
- 如何在用户输入 javascript 时更改值
- 如何从多个不同的html页面获得mongodb文档的用户输入
- PayPal按钮是否有一个简单的选项,其中金额基于一些用户输入
- 从表单中获取用户输入执行计算(操作顺序)并输出回该表单
- 我确实有一个表单,如果用户输入了输入,它应该检查否定或空的输入框,并抛出一条警告消息
- 如果用户输入的长度小于最小长度,则显示错误消息
- 随机生成用户输入
- 如果图像标记是用javascript编写的,并且需要用户输入,那么图像不会随页面加载吗
- Javascript:使用用户输入搜索数组
- 根据用户输入的数字生成文本框
- 如何通过获取用户输入和使用按钮来运行JavaScript函数
- 使用用户输入修改链接
- 如何解决取消抖动的用户输入上的竞争条件
- 从用户输入中制作数组动画,如打字机(javascript)
- 如何在视图中保存用户输入内容,并在离开页面时对控制器进行后期调用