如何根据要求更改angularjs中的按钮标签?

我想根据要求更改angularjs中相同按钮的标签,同样的按钮可以更新和提交。

请参阅以下演示 ,

上面的演示是关于复制模板的。 如果某个模板已有数据,则提交按钮的标签应为Update,否则空模板标签应为Submit。

我不能使用以下逻辑,因为它将更改具有相同标签的所有按钮,但我想显示标签提交仅空和非空显示标签更新 。 我该怎么做?

{{btnText}} And add some logic to your controller, that will specify text for button: if (newItem){ $scope.btnText = 'Submit'; }else{ $scope.btnText = 'Update'; } 

HTML

  
Add

Angularjs

  $scope.fields=[ { "field1": "", "field2": "", } ] // update and get invoice details $scope.cloneTemplate=function(){ var clone_template={ "field1": "", "field2": ""}; $scope.fields.push(clone_template); } $scope.removeTemplate= function(templateIndex){ $scope.fields.splice(templateIndex,1); } $scope.updateOrder=function(i){ var updateOrder={ "field1":$scope.fields[i].field1, "field2":$scope.fields[i].field2, } alert(updateOrder.field1); $http.post(config.server, updateOrder) .success(function(response, status){ console.log(response); }) .error(function(response, status){ console.log(response); }) } 

据我所知,在添加数据时,您希望在更新记录时显示“ Submit按钮标签并显示“ Update按钮标签。

因此,正常情况下,您从数据库中获取此值,因此我建议您在此对象中添加id列,其中包含字段。 现在对象看起来像{id: 1, field1: '1', field2: 2}所以如果元素有id意味着它已经存在于数据库中。 显然,如果你在字段中没有id记录意味着它已经从UI添加。

因此整个逻辑将查看对象的id属性,如果您在记录中有id,那么它将显示Update作为按钮标签,否则它将Submit

  

因此,为了使您的逻辑正常工作,您需要从数据库中再次获取列表以使UI保持一致。

工作Plunkr

更改按钮的标记以显示一些范围属性:

 {{btnText}} 

并为控制器添加一些逻辑,为按钮指定文本:

 if (newItem){ $scope.btnText = 'Submit'; }else{ $scope.btnText = 'Update'; }