Javascript 如何使用函数更改ng init值?
这是我的Html和JavaScript代码,我想通过函数对其进行更改 Html:Javascript 如何使用函数更改ng init值?,javascript,angularjs,Javascript,Angularjs,这是我的Html和JavaScript代码,我想通过函数对其进行更改 Html: <div class="container" ng-app="myApp" ng-controller="myController"> <h2>{{title}}</h2> <ul ng-init="initItems()"> <li ng-repeat="item in items"> <input ng-model="
<div class="container" ng-app="myApp" ng-controller="myController">
<h2>{{title}}</h2>
<ul ng-init="initItems()">
<li ng-repeat="item in items">
<input ng-model="item.name" type="text"/>
<div ng-if="makeVisible == item.id && makeVisible !='' ">
<input ng-model="newname" type="text"/>
<button ng-click="hideme(item.id); rename()" type="button">
<span class="glyphicon glyphicon-ok">
</span>
</button>
<button ng-click="hideme(item.id)" type="button">
<span class="glyphicon glyphicon-remove">
</span>
</button>
</div>
<input ng-click=" showme( item.id)" type="button" value="Rename"/>
</li>
</ul>
</div>
这里是输入框1中显示的ng init
中的值,我想在单击时用第二个输入框的值来更改它。我该怎么做?
我还在按钮上添加了一个函数。在项目中添加可见属性
function item(id, name) {
this.id = id;
this.visible=false;
this.name = name;
}
并将显示和隐藏功能更改为此代码
$scope.hideme = function(item) {
item.visible=false;
};
$scope.showme = function(item) {
item.visible=true;
};
<div ng-if="makeVisible == item.id && makeVisible !='' ">
并更改此代码
$scope.hideme = function(item) {
item.visible=false;
};
$scope.showme = function(item) {
item.visible=true;
};
<div ng-if="makeVisible == item.id && makeVisible !='' ">
致:
并将item对象发送到shomme和hideme函数
<input ng-click="showme(item)" type="button" value="Rename"/>
<button ng-click="hideme(item); rename()" type="button">
<span class="glyphicon glyphicon-ok">
</span>
</button>
<button ng-click="hideme(item)" type="button">
<span class="glyphicon glyphicon-remove">
</span>
</button>
当您使用
ng if
时,仅当项目处于重命名模式时,新名称模型才可用
所以,你可以这样做:
功能项(id、名称){
this.id=id;
this.name=名称;
};
有棱角的
.module('myApp',[])
.controller('myController',函数($scope){
$scope.items=[];
$scope.makeVisible='';
$scope.title='在此处输入新名称';
$scope.initItems=函数(){
$scope.items.push(新项('0','Vikash'));
$scope.items.push(新项('1','Kumar');
$scope.items.push(新项('2','Vishal'));
$scope.items.push(新项('3','Ajay'));
};
$scope.showme=函数(id){
$scope.makeVisible=id;
};
$scope.hideme=函数(id){
$scope.makeVisible='';
};
$scope.rename=函数(项,新名称){
item.name=新名称;
};
});代码>
{{title}}
-
据我所知,您希望通过单击(比如重命名按钮)触发的函数rename
,将第一个输入框(item.name
)的值更改为第二个输入框(newname
)的值
解决方法是将项
和新名称
传递给函数
简化HTML:
<ul ng-init="initItems()">
<li ng-repeat="item in items">
<input ng-model="item.name" type="text" />
<input ng-model="newname" type="text" />
<input ng-click="rename(item, newname)" type="button" value="Rename" />
</li>
</ul>
请参阅“工作”Hi all,是否可以更新数组值?例如,我用kapil替换vishal。然后数组中vishal的值(在js文件中)应该是kapil。您可以看到显示数组,只需将{{items}}
放在某个地方并检查它是如何变化的,例如:嘿,我可以在控制台中像这样打印“console.log({{items}')”吗。?我想在控制台中查看更新的数组值。我该怎么做呢?在控制器中是这样的:console.log($scope.items)代码>参见(rename
function)。嘿,console.log(Sscope.items)它显示了如下结果{item,item,item,item}。
$scope.rename = function(item, newname_) {
item.name = newname_;
};