在AngularJS中使用ngIf和ngShow显示按钮

时间:2015-05-20 08:42:17

标签: javascript angularjs

我有两个观点的人和形式。表单视图位于具有自己的控制器的模态窗口中。在人物视图中是一个表格列表。单击" CREATE"的打开()按钮时,将打开模态窗口,其中包含空输入字段。当我单击列表中的某个人时,open()函数还会打开带有输入字段值的模态窗口。我有五个按钮(添加,更新,删除,取消,重置)。如果我点击打开按钮"创建",只应在模态窗口中显示按钮(添加,取消,重置)。如果我点击列表中的某个人,则会显示按钮(更新,取消,删除,重置)。只有按钮"添加","删除"和"更新"需要检查才能在模态窗口中显示。

这里我的代码: (人员观点)

<button type="button" class="btn btn-circle pull-right" ng-click="open()">
     Create
</button>
...
<tr ng-repeat="item in items" ng-click="open(this.item)">
   ...
</tr>

PersonCtrl:

$scope.open = function (item) {
  if (!item) {
     $scope.selectedItem = null;
  } else {
     $scope.selectedItem = item;
  }

  ...
  //here is the modal service to open the modal window
}

第二个视图(模态窗口):

<div class="modal-body">
    <!-- here is the form -->
</div>
<div class="modal-footer">
    <button class="btn btn-default" ng-click="addBtn(item)">create</button>
    <button class="btn btn-default" ng-click="updateBtn(item)">update</button>
    <button class="btn btn-default" ng-click="cancelBtn()">cancel</button>
    <button class="btn btn-default" ng-click="deleteBtn(item)">delete</button>
    <button class="btn btn-default" ng-click="resetBtn()">reset</button>
</div>

我的取消btn也无法正常工作。当我单击列表中的某个人时,将打开模态窗口,并在表格列表的输入字段中进行一些更改,您可以立即看到更改。当我点击重置btn时,它只重置表格视图,但没有重置表格列表,点击取消btn关闭模态窗口,但人员的变化仍然存在。这里是短暂的重置和取消代码btn:

$scope.resetBtn = function () {
  $scope.selectedItem = angular.copy($scope.oldItem);
}

$scope.cancelBtn = function () {
  $modalInstance.dismiss('cancel');
}

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

在开放模态中使用角度复制;

   $scope.open = function (item) {
  if (!item) {
     $scope.selectedItem = null;
  } else {
     $scope.selectedItem = angular.copy(item);
  }

}