使用angularjs和HTML在按钮单击上显示div

问题描述 投票:3回答:1

我想使用angularjs和HTML在按钮点击上显示div我正在学习angularJs。我想设计一个网页,在其中点击“添加”按钮,显示一个div(EmployeeInfoDiv)。当我填充其中的文本框并保存它时,数据应该反映在div(EmpDetTable)中的表中。

这是HTML页面代码:

<body ng-app="MyApp">
 <div ng-controller="EmpDetCtrl">       
    <div ng-model="EmpDetTable" class="container body"  ng-hide="addEmp">

        <label class="TabHeadings">Employee Details</label>
        <div class="EmployeeInfo">

            <table ng-model="Employee" border="1">
                <thead><tr><th>Name</th><th>Designation</th><th>Salary</th></tr></thead>
                <tbody>
                    <tr ng-repeat="emp in employees">
                        <td>{{emp.name}}</td>
                        <td>{{emp.desg}}</td>
                    </tr>
                </tbody>
            </table>
            <button ng-model="AddEmp" ng-click="ShowAddEmployee()">Add</button> 
        </div>
      </div>
    <div ng-model="EmployeeInfoDiv" class="popover right EmployeeInfo" style="width:1500px;"  ng-show="addEmp" >
     <label class="TabHeadings" style="width:830px;">Employee Details</label>

    <div class="EmployeeInfo">
            <table>
                <tr><td><label class="table_label">Name:</label></td><td><input type="text" ng-model="name" class="textbox"/></td>
                <td><label  class="table_label">Designation:</label></td><td><input type="text" ng-model="desg" class="textbox"/></td>
                </tr>

            </table>
            <div ng-model="botton_container">
                <button ng-model="save" class="save_buttons" ng-click="SaveData();">Save</button> 
                <button ng-model="cancel" class="cancel_buttons"  ng-click="ShowViewEmployee();">Cancel</button>
            </div> 

        </div>
   </div>

</div>  
</body>

控制器代码:

 function EmpDetCtrl($scope) {

   $scope.employees = [
   { name: 'A',desg: 'C'}

   ];

   $scope.addNew = function () {
    $scope.employees.push({
        name: $scope.name,desg: $scope.desg
     });
    }

  $scope.ShowAddEmployee= function () {
    return $scope.EmployeeInfoDiv=true;
   }

  $scope.ShowViewEmployee=function () {
      return $scope.EmployeeInfoDiv = false;
  }

}

我不知道这段代码是否正确。我刚尝试过。任何人都可以帮助我。提前致谢。

html angularjs
1个回答
1
投票

您的点击是更新EmployeeInfoDiv变量。所以,在ng-show和ng-hide中引用它:

<div ng-hide="EmployeeInfoDiv" class="container body">
...
<div ng-show="EmployeeInfoDiv" class="popover right EmployeeInfo" style="width:1500px;">

你不需要div中的ng-model来完成这项工作。 ng-model="EmployeeInfoDiv"

更新 还有一些问题。最重要的是(至少在发布的代码中)MyApp没有在任何地方定义,并且您的控制器是在全局范围内定义的。所以你需要将你的html更改为:

<div ng-app>
<div ng-controller="EmpDetCtrl"> 
...

但请注意,这不是推荐的方法。请参阅controllers的角度文档。

这是一个工作演示:http://jsfiddle.net/wittwerj/xrB77/

© www.soinside.com 2019 - 2024. All rights reserved.