Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.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
包含在模板中时AngularJS绑定不起作用_Angularjs_Angularjs Ng Include - Fatal编程技术网

包含在模板中时AngularJS绑定不起作用

包含在模板中时AngularJS绑定不起作用,angularjs,angularjs-ng-include,Angularjs,Angularjs Ng Include,创建动态面板时: <div ng-controller="widgetCtrl"> <div drag-group="widgets"> <div class="panel panel-primary" ng-repeat="widget in widgets" draggable-widget="widget" draggable-widget-callback="moveWidget"> <div class="panel-h

创建动态面板时:

<div ng-controller="widgetCtrl">
  <div drag-group="widgets">
    <div class="panel panel-primary" ng-repeat="widget in widgets" draggable-widget="widget" draggable-widget-callback="moveWidget">
      <div class="panel-heading" ng-include="widget.header" draggable-widget-handle></div>
      <div ng-include="widget.body"></div>
      <div class="panel-footer" ng-include="widget.footer"></div>
    </div>
  </div>
</div>
ng中的绑定包括(include sites.html):

失败,因为我得到以下错误:

http://errors.angularjs.org/1.5.9/ng/areq?p0=SiteCtrl&p1=not%20aNaNunction%2C%20got%20undefined

当所有代码都驻留在一个文件(index.html)中时,一切都很好。我已经寻找了几个星期试图解决这个问题,但我对AngularJS非常陌生。

如果没有看到更多的代码/html,很难判断,但Angular的错误是SiteCtrl控制器没有解析为函数,这意味着它从未启动过。这可能是一个包含顺序问题,或者您没有将
app.controller
包装到函数闭包ala
(function(){/*code here*/})()HTML都可以工作,似乎ng控制器和绑定在移动到包含(ng include)后就不能工作。一般来说,应该避免使用ng include。你能把它做成一个单独的组件吗?我不理解你的评论,你能澄清并提供例子吗?在这一点上,我所能想到的是,在没有看到你所做的结构的情况下,你的Angular代码可能不在一个单独的include.js文件中
ng include
创建一个新的根作用域(不继承),因此,如果您的应用程序/控制器代码位于页面上的HTML脚本标记中,则include可能无法解析控制器。无论哪种方式,您得到的错误都会告诉您,无论出于何种原因,它都无法解析控制器,因此几乎可以肯定这是一个包含/包含顺序问题。嗯!如果看不到更多的代码/html,很难判断,但是Angular的错误是说SiteCtrl控制器不能解析为函数,这意味着它从未被引导过。这可能是一个包含顺序问题,或者您没有将
app.controller
包装到函数闭包ala
(function(){/*code here*/})()HTML都可以工作,似乎ng控制器和绑定在移动到包含(ng include)后就不能工作。一般来说,应该避免使用ng include。你能把它做成一个单独的组件吗?我不理解你的评论,你能澄清并提供例子吗?在这一点上,我所能想到的是,在没有看到你所做的结构的情况下,你的Angular代码可能不在一个单独的include.js文件中
ng include
创建一个新的根作用域(不继承),因此,如果您的应用程序/控制器代码位于页面上的HTML脚本标记中,则include可能无法解析控制器。无论哪种方式,您得到的错误都会告诉您,无论出于何种原因,它都无法解析控制器,因此几乎可以肯定这是一个包含/包含顺序问题。嗯!
<div class="panel-body" ng-controller="SiteCtrl as ctrlsite">
  <table class="table-condensed table-fixed table-hover">
    <thead>
      <tr>
        <th class="col-lg-3 col-md-3 col-sm-3 col-xs-3 ">name</th>
        <th class="col-lg-3 col-md-3 col-sm-3 col-xs-3 ">connection</th>
        <th class="col-lg-3 col-md-3 col-sm-3 col-xs-3 ">location</th>
        <th class="col-lg-2 col-md-2 col-sm-2 col-xs-2 ">contact</th>
        <th class="col-lg-1 col-md-1 col-sm-1 col-xs-1"><a ng-click="ctrlsite.expandAll(allExpanded = !allExpanded)" data-toggle="tooltip" data-placement="top" title="All Details"><i class="zmdi zmdi-more zmdi-hc-2x"></i></a></th>
      </tr>
    </thead>
    <tbody>
      <tr ng-repeat-start="site in ctrlsite.sites">
        <td class="col-lg-3 col-md-3 col-sm-3 col-xs-3 h-dotted-line">{{site.SiteName}}<br/>
          <span class="tr-secondary-row text-capitalize" ng-repeat="connection in site.Connections">{{connection.ExternalIP}}</span></td> ... </div>
var app = angular.module('myApp', ['ngMessages', 'ngResource', 'angular.filter', 'dndLists'])

  .factory('Sites', function ($resource) {
    return $resource('data/sites.json');
  });

app.controller('SiteCtrl', function ($scope, Sites) {
    var self = this;

    console.log("SiteCtrl hit");
    console.log($scope.$id);
    self.sites = Sites.query();

    self.expandAll = function (expanded) {
      // $scope is required here, hence the injection above, even though we're using "controller as" syntax
      $scope.$broadcast('onExpandAll', {
        expanded: expanded
      });
    };

  });
http://errors.angularjs.org/1.5.9/ng/areq?p0=SiteCtrl&p1=not%20aNaNunction%2C%20got%20undefined