如何在angular.js中动态生成列表

时间:2014-07-28 04:46:12

标签: javascript jquery angularjs

你能告诉我如何在angulat.js中动态创建列表。当我用户按下添加按钮并填写字段时,我能够制作列表。 换句话说,无论何时填写生成一行的字段,请检查此小提琴。当您点击该行时,您可以获得ID。http://jsfiddle.net/wc4Jm/6/  现在我尝试使用bootstrap模型来实现这一点。换句话说,首先按钮点击我会显示一个弹出屏幕,然后有"添加"按钮.on点击它生成行。但我得到"未定义"。我在控制器中插入模型div?这是 http://jsbin.com/vubojoxo/4/

为什么我收到此错误? XMLHttpRequest无法加载file:/// C:/Users/asd/Desktop/angular/angularproject/dialog.html。收到无效回复。起源' null'因此不允许访问。

当我使用plunker时,我收到此错误..并在我的桌面上运行.. 我做这个HTML?

<!doctype html>
<html ng-app="plunker">
<head>
    <script src="angular.js"></script>
    <script src="ui-bootstrap-tpls-0.2.0.js"></script>
    <link href="bootstrap-combined.min.css" rel="stylesheet">

    <script src="index.js"></script>

</head>
<body>

<div ng-controller="DialogDemoCtrl">
    <a class="btn" data-toggle="modal" href="" ng-click="openPopupScreen()">Add Contend</a>
</div>

</body>
</html>

.... Dialog.html

<div class="modal-header">
    <a class="close" data-dismiss="modal">×</a>
    <h1>Add Element</h1>
</div>
<div class="modal-body">
    <form >
        <label>Name:</label><input type="text" class="span3" ng-model="activeItem.name"></br>
        <label>Content Name:</label><input type="password" class="span3" ng-model="activeItem.content"></br>
        <button type="submit" class="btn btn-success" ng-click="addItem()">Add In List</button>
        <button type="reset" class="btn ">Clear</button>
    </form>
</div>
<div class="modal-footer">
    <a class="btn" data-dismiss="modal" aria-hidden="true">close</a>
</div>

js code:

var myApp = angular.module('plunker', ['ui.bootstrap']);

myApp.controller('DialogDemoCtrl',  function($scope,$dialog) {
    $scope.items = [];
    $scope.activeItem = {
        id:'',
        name: '',
        content: ''
    };

    $scope.addItem = function () {
        $scope.activeItem.id = $scope.items.length + 1;
        $scope.items.push($scope.activeItem);
        $scope.activeItem = {}; /* reset active item*/

    };

    $scope.getId = function (item) {
        alert('ID: '+item.id);

    };
    $scope.openPopupScreen = function () {
        alert('Check Open pop up screen');
        $dialog.dialog({}).open('dialog.html');

    };

});

1 个答案:

答案 0 :(得分:0)

检查此 Plunker

在这个例子中,我使用了angular-ui库,它将bootstrap的模态包装成angular based on this StackOverflow Answer

<强> ModalDemoCtrl

  $scope.items = [];

  $scope.getId = function(item) {
    alert('ID: ' + item.id);

  };

  // This opens a Bootstrap modal
  $scope.open = function() {

    var modalInstance = $modal.open({
      template: $scope.modal_html_template,
      controller: ModalInstanceCtrl
    });

    modalInstance.result.then(function(newItem) {
      // On modal success

      newItem.id = $scope.items.length + 1;

      $scope.items.push(newItem);

    }, function() {
      // On modal cancelation
    });
  }

<强> ModalInstanceCtrl

  $scope.name = '';
  $scope.content = '';

  $scope.ok = function() {

    var response = {
      'name': $scope.name,
      'content': $scope.content
    };

    $modalInstance.close(response);

  };

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

<强> HTML

 <body>

    <div ng-controller="ModalDemoCtrl">


      <div inner-html-bind="" inner-html="modal_html_template" class="hidden">
        <div class="modal-header">
          <h3>I'm a modal!</h3>
        </div>

        <div class="modal-body">

          <div class="form-group">
            <label>Name</label>

            <!-- using $parent because ui-bootstrap nested 2 controllers. this is a workaround -->
            <input type="text" class="form-control" ng-model="$parent.name" placeholder="Enter Name">
          </div>

          <div class="form-group">
            <label>Content</label>

            <!-- using $parent because ui-bootstrap nested 2 controllers. this is a workaround -->
            <input type="text" class="form-control" ng-model="$parent.content" placeholder="Enter Content">
          </div>

        </div>

        <div class="modal-footer">
          <button class="btn btn-primary" ng-click="ok()">OK</button>
          <button class="btn btn-warning" ng-click="cancel()">Cancel</button>
        </div>
      </div>

      <div class="container">
        <h2>Modal Example <a href="https://stackoverflow.com/questions/24988561">https://stackoverflow.com/questions/24988561</a></h2>
        <button class="btn" ng-click="open()">Open Modal</button>


        <div>

          <ul>
            <li ng-repeat="item in items">
              <a ng-click="getId(item)">{{ item.id }} | {{ item.name + ' ' + item.content  }}</a>
            </li>
          </ul>

        </div>
      </div>

    </div>
  </body>
相关问题