Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/428.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 创建使用angularjs生成的项目列表_Javascript_Json_Angularjs - Fatal编程技术网

Javascript 创建使用angularjs生成的项目列表

Javascript 创建使用angularjs生成的项目列表,javascript,json,angularjs,Javascript,Json,Angularjs,我想创建一个内置指令项列表,并通过控制器共享 <div class="controls"> <a class="btn btn-danger" id="addBrunch" data-ng-click="addNew()"> <i class="icon-plus-sign"></i> add new...

我想创建一个内置指令项列表,并通过控制器共享

          <div class="controls">
               <a class="btn btn-danger" id="addBrunch" data-ng-click="addNew()">
                  <i class="icon-plus-sign"></i>
                  add new...
              </a>
          </div>
      </div>

      <brunches-view class="well" data-ng-repeat="brunch in brunches">{{brunch}}</brunches-view>

      <br/>
      <p class="well">
          JSON: {{brunches | json}}
      </p>

      <div class="control-group">
          <div class="controls">
              <a class="btn btn-primary" href="#" data-business-submit>
                  <i class="icon-save"></i>
                  Save...
              </a>
          </div>
      </div>
  </div>
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js"></script>      
  <script src="//netdna.bootstrapcdn.com/bootstrap/3.0.3/js/bootstrap.min.js"></script>
  <script src="script.js"></script>
以下是我在plunker中的示例:

          <div class="controls">
               <a class="btn btn-danger" id="addBrunch" data-ng-click="addNew()">
                  <i class="icon-plus-sign"></i>
                  add new...
              </a>
          </div>
      </div>

      <brunches-view class="well" data-ng-repeat="brunch in brunches">{{brunch}}</brunches-view>

      <br/>
      <p class="well">
          JSON: {{brunches | json}}
      </p>

      <div class="control-group">
          <div class="controls">
              <a class="btn btn-primary" href="#" data-business-submit>
                  <i class="icon-save"></i>
                  Save...
              </a>
          </div>
      </div>
  </div>
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js"></script>      
  <script src="//netdna.bootstrapcdn.com/bootstrap/3.0.3/js/bootstrap.min.js"></script>
  <script src="script.js"></script>
以下是我在js中的代码:

var app = angular.module('app', []);

app.controller("BrunchesCtrl", function ($scope, $log) {
    $scope.brunches = [];

    $scope.addNew = function () {
        $scope.brunches.push({ address: "" });
    };
    $scope.$watch('brunch.address', function(value) {
        $scope.address = value;
        $log.info($scope.address);
    });

    $scope.$watch(function() { return $scope.brunches.length; }, function() {
        $scope.brunches = $scope.brunches.map(function (brunch) {
            return brunch;
        });
    });
});

app.directive('brunchesView', function ($compile) {
    return {
        restrict: 'E',
        templateUrl: 'brunch.html',
        controller: 'BrunchesCtrl',
        replace: true,
        link: function (scope, element, attrs, controller) {

        }
    };
});

app.directive('businessSubmit', function ($log, $compile, formManagerService) {
    return {
        restrict: 'AE',
        controller: 'BrunchesCtrl',
        link: function (scope, element, attrs, controller) {
            formManagerService.init();
            var hasError;

            element.on('click', function (e) {
                e.preventDefault();
                $log.info("brunches: \n");
                $log.info(scope.brunches);
            });
        }
    };
});
          <div class="controls">
               <a class="btn btn-danger" id="addBrunch" data-ng-click="addNew()">
                  <i class="icon-plus-sign"></i>
                  add new...
              </a>
          </div>
      </div>

      <brunches-view class="well" data-ng-repeat="brunch in brunches">{{brunch}}</brunches-view>

      <br/>
      <p class="well">
          JSON: {{brunches | json}}
      </p>

      <div class="control-group">
          <div class="controls">
              <a class="btn btn-primary" href="#" data-business-submit>
                  <i class="icon-save"></i>
                  Save...
              </a>
          </div>
      </div>
  </div>
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js"></script>      
  <script src="//netdna.bootstrapcdn.com/bootstrap/3.0.3/js/bootstrap.min.js"></script>
  <script src="script.js"></script>
以下是一个HTML:

<!DOCTYPE html>
          <div class="controls">
               <a class="btn btn-danger" id="addBrunch" data-ng-click="addNew()">
                  <i class="icon-plus-sign"></i>
                  add new...
              </a>
          </div>
      </div>

      <brunches-view class="well" data-ng-repeat="brunch in brunches">{{brunch}}</brunches-view>

      <br/>
      <p class="well">
          JSON: {{brunches | json}}
      </p>

      <div class="control-group">
          <div class="controls">
              <a class="btn btn-primary" href="#" data-business-submit>
                  <i class="icon-save"></i>
                  Save...
              </a>
          </div>
      </div>
  </div>
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js"></script>      
  <script src="//netdna.bootstrapcdn.com/bootstrap/3.0.3/js/bootstrap.min.js"></script>
  <script src="script.js"></script>

          <div class="controls">
               <a class="btn btn-danger" id="addBrunch" data-ng-click="addNew()">
                  <i class="icon-plus-sign"></i>
                  add new...
              </a>
          </div>
      </div>

      <brunches-view class="well" data-ng-repeat="brunch in brunches">{{brunch}}</brunches-view>

      <br/>
      <p class="well">
          JSON: {{brunches | json}}
      </p>

      <div class="control-group">
          <div class="controls">
              <a class="btn btn-primary" href="#" data-business-submit>
                  <i class="icon-save"></i>
                  Save...
              </a>
          </div>
      </div>
  </div>
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js"></script>      
  <script src="//netdna.bootstrapcdn.com/bootstrap/3.0.3/js/bootstrap.min.js"></script>
  <script src="script.js"></script>

          <div class="controls">
               <a class="btn btn-danger" id="addBrunch" data-ng-click="addNew()">
                  <i class="icon-plus-sign"></i>
                  add new...
              </a>
          </div>
      </div>

      <brunches-view class="well" data-ng-repeat="brunch in brunches">{{brunch}}</brunches-view>

      <br/>
      <p class="well">
          JSON: {{brunches | json}}
      </p>

      <div class="control-group">
          <div class="controls">
              <a class="btn btn-primary" href="#" data-business-submit>
                  <i class="icon-save"></i>
                  Save...
              </a>
          </div>
      </div>
  </div>
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js"></script>      
  <script src="//netdna.bootstrapcdn.com/bootstrap/3.0.3/js/bootstrap.min.js"></script>
  <script src="script.js"></script>

          <div class="controls">
               <a class="btn btn-danger" id="addBrunch" data-ng-click="addNew()">
                  <i class="icon-plus-sign"></i>
                  add new...
              </a>
          </div>
      </div>

      <brunches-view class="well" data-ng-repeat="brunch in brunches">{{brunch}}</brunches-view>

      <br/>
      <p class="well">
          JSON: {{brunches | json}}
      </p>

      <div class="control-group">
          <div class="controls">
              <a class="btn btn-primary" href="#" data-business-submit>
                  <i class="icon-save"></i>
                  Save...
              </a>
          </div>
      </div>
  </div>
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js"></script>      
  <script src="//netdna.bootstrapcdn.com/bootstrap/3.0.3/js/bootstrap.min.js"></script>
  <script src="script.js"></script>

          <div class="controls">
               <a class="btn btn-danger" id="addBrunch" data-ng-click="addNew()">
                  <i class="icon-plus-sign"></i>
                  add new...
              </a>
          </div>
      </div>

      <brunches-view class="well" data-ng-repeat="brunch in brunches">{{brunch}}</brunches-view>

      <br/>
      <p class="well">
          JSON: {{brunches | json}}
      </p>

      <div class="control-group">
          <div class="controls">
              <a class="btn btn-primary" href="#" data-business-submit>
                  <i class="icon-save"></i>
                  Save...
              </a>
          </div>
      </div>
  </div>
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js"></script>      
  <script src="//netdna.bootstrapcdn.com/bootstrap/3.0.3/js/bootstrap.min.js"></script>
  <script src="script.js"></script>

          <div class="controls">
               <a class="btn btn-danger" id="addBrunch" data-ng-click="addNew()">
                  <i class="icon-plus-sign"></i>
                  add new...
              </a>
          </div>
      </div>

      <brunches-view class="well" data-ng-repeat="brunch in brunches">{{brunch}}</brunches-view>

      <br/>
      <p class="well">
          JSON: {{brunches | json}}
      </p>

      <div class="control-group">
          <div class="controls">
              <a class="btn btn-primary" href="#" data-business-submit>
                  <i class="icon-save"></i>
                  Save...
              </a>
          </div>
      </div>
  </div>
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js"></script>      
  <script src="//netdna.bootstrapcdn.com/bootstrap/3.0.3/js/bootstrap.min.js"></script>
  <script src="script.js"></script>
以下是模板:

          <div class="controls">
               <a class="btn btn-danger" id="addBrunch" data-ng-click="addNew()">
                  <i class="icon-plus-sign"></i>
                  add new...
              </a>
          </div>
      </div>

      <brunches-view class="well" data-ng-repeat="brunch in brunches">{{brunch}}</brunches-view>

      <br/>
      <p class="well">
          JSON: {{brunches | json}}
      </p>

      <div class="control-group">
          <div class="controls">
              <a class="btn btn-primary" href="#" data-business-submit>
                  <i class="icon-save"></i>
                  Save...
              </a>
          </div>
      </div>
  </div>
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js"></script>      
  <script src="//netdna.bootstrapcdn.com/bootstrap/3.0.3/js/bootstrap.min.js"></script>
  <script src="script.js"></script>
<div class="fc-border-separate">
    <div class="control-group">
        <label class="control-label">Address</label>
        <div class="controls">
            <input type="text" class="span6 m-wrap"
                   name="Address" data-ng-model="address" 
                   value="{{address}}" />
        </div>
    </div>
</div>

地址
最后一件事是将所有数据保存在
BusinessSubmit
指令中

          <div class="controls">
               <a class="btn btn-danger" id="addBrunch" data-ng-click="addNew()">
                  <i class="icon-plus-sign"></i>
                  add new...
              </a>
          </div>
      </div>

      <brunches-view class="well" data-ng-repeat="brunch in brunches">{{brunch}}</brunches-view>

      <br/>
      <p class="well">
          JSON: {{brunches | json}}
      </p>

      <div class="control-group">
          <div class="controls">
              <a class="btn btn-primary" href="#" data-business-submit>
                  <i class="icon-save"></i>
                  Save...
              </a>
          </div>
      </div>
  </div>
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js"></script>      
  <script src="//netdna.bootstrapcdn.com/bootstrap/3.0.3/js/bootstrap.min.js"></script>
  <script src="script.js"></script>

请帮助…

您的代码有几个问题

          <div class="controls">
               <a class="btn btn-danger" id="addBrunch" data-ng-click="addNew()">
                  <i class="icon-plus-sign"></i>
                  add new...
              </a>
          </div>
      </div>

      <brunches-view class="well" data-ng-repeat="brunch in brunches">{{brunch}}</brunches-view>

      <br/>
      <p class="well">
          JSON: {{brunches | json}}
      </p>

      <div class="control-group">
          <div class="controls">
              <a class="btn btn-primary" href="#" data-business-submit>
                  <i class="icon-save"></i>
                  Save...
              </a>
          </div>
      </div>
  </div>
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js"></script>      
  <script src="//netdna.bootstrapcdn.com/bootstrap/3.0.3/js/bootstrap.min.js"></script>
  <script src="script.js"></script>
首先,
ng模型
设置为
地址
,但您要将其绑定到具有
地址
属性的
早午餐
对象。重要的是要认识到,
ng repeat
将为每个重复项创建一个子范围

          <div class="controls">
               <a class="btn btn-danger" id="addBrunch" data-ng-click="addNew()">
                  <i class="icon-plus-sign"></i>
                  add new...
              </a>
          </div>
      </div>

      <brunches-view class="well" data-ng-repeat="brunch in brunches">{{brunch}}</brunches-view>

      <br/>
      <p class="well">
          JSON: {{brunches | json}}
      </p>

      <div class="control-group">
          <div class="controls">
              <a class="btn btn-primary" href="#" data-business-submit>
                  <i class="icon-save"></i>
                  Save...
              </a>
          </div>
      </div>
  </div>
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js"></script>      
  <script src="//netdna.bootstrapcdn.com/bootstrap/3.0.3/js/bootstrap.min.js"></script>
  <script src="script.js"></script>
<input data-ng-model="brunch.address"/>

另一个问题是将父控制器也分配给指令。重要的是要了解控制器是单例的,所以如果您多次使用控制器,每个控制器都是一个单独的实例。因此,将父控制器嵌套在指令中是没有意义的

          <div class="controls">
               <a class="btn btn-danger" id="addBrunch" data-ng-click="addNew()">
                  <i class="icon-plus-sign"></i>
                  add new...
              </a>
          </div>
      </div>

      <brunches-view class="well" data-ng-repeat="brunch in brunches">{{brunch}}</brunches-view>

      <br/>
      <p class="well">
          JSON: {{brunches | json}}
      </p>

      <div class="control-group">
          <div class="controls">
              <a class="btn btn-primary" href="#" data-business-submit>
                  <i class="icon-save"></i>
                  Save...
              </a>
          </div>
      </div>
  </div>
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js"></script>      
  <script src="//netdna.bootstrapcdn.com/bootstrap/3.0.3/js/bootstrap.min.js"></script>
  <script src="script.js"></script>

          <div class="controls">
               <a class="btn btn-danger" id="addBrunch" data-ng-click="addNew()">
                  <i class="icon-plus-sign"></i>
                  add new...
              </a>
          </div>
      </div>

      <brunches-view class="well" data-ng-repeat="brunch in brunches">{{brunch}}</brunches-view>

      <br/>
      <p class="well">
          JSON: {{brunches | json}}
      </p>

      <div class="control-group">
          <div class="controls">
              <a class="btn btn-primary" href="#" data-business-submit>
                  <i class="icon-save"></i>
                  Save...
              </a>
          </div>
      </div>
  </div>
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js"></script>      
  <script src="//netdna.bootstrapcdn.com/bootstrap/3.0.3/js/bootstrap.min.js"></script>
  <script src="script.js"></script>

如果您希望与其他控制器共享数据,您应该设置一个服务,通过将数据注入需要访问的控制器中来保存
早午餐
数据

是否有特殊原因让提交发生在指令中?一个简单的控制器函数怎么样,点击就调用它?我同意@mseemann。你想要达到的目标听起来很奇怪。你能举个例子吗?@iamstapper:
          <div class="controls">
               <a class="btn btn-danger" id="addBrunch" data-ng-click="addNew()">
                  <i class="icon-plus-sign"></i>
                  add new...
              </a>
          </div>
      </div>

      <brunches-view class="well" data-ng-repeat="brunch in brunches">{{brunch}}</brunches-view>

      <br/>
      <p class="well">
          JSON: {{brunches | json}}
      </p>

      <div class="control-group">
          <div class="controls">
              <a class="btn btn-primary" href="#" data-business-submit>
                  <i class="icon-save"></i>
                  Save...
              </a>
          </div>
      </div>
  </div>
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js"></script>      
  <script src="//netdna.bootstrapcdn.com/bootstrap/3.0.3/js/bootstrap.min.js"></script>
  <script src="script.js"></script>