2013-11-21 43 views
1

我想在页面上的单个div中包含各种html模板,当点击相应的链接时(我打开更好的想法,可以让我链接样式的图标)..Angularjs-ng-include不加载包含模板(不可见错误)

我不知道为什么NG-包括没有做任何事情

HTML文件

<div ng-controller="loadCtrl"> 

     <div> 
      <ul> 
       <li ng-repeat="block in blocks"> 

        <a href="#" ng-model="block"> 
         {{block.name}} - {{block.ctrl}} 
        </a> 

       </li> 
      </ul> 
     </div> 

     <div ng-include="block.ctrl"></div> 

    </div> 

JS控制器

app.controller('loadCtrl', function ($scope, $http) { 

     $scope.pyctrl = base_data + 'blocks.json'; 
     $scope.blocks = []; 

     $scope.LoadBlocks = function(data, status){ 
      $scope.blocks = data; 
     } 

     $scope.fetch = function(){ 
      $http.get($scope.pyctrl).success($scope.LoadBlocks,console.log("Ok")); 
     } 

     $scope.fetch(); 

    }); 

JSON文件

[ 
     { 
      "name": "block 1", 
      "ctrl": "dir1/dir2/template1.html" 
     }, 
     { 
      "name": "block 2", 
      "ctrl": "dir1/dir2/template2.html" 
     }, 
     { 
      "name": "block 3", 
      "ctrl": "dir1/dir2/template3.html" 
     } 
    ] 

回答

1

我想你想保持ng-repeat循环内的ng-include(在li元素)。


更新:如果你想保存在block值当您单击的再利用,而不是一个ng-model="block"链路上,使用ng-click="selectedBlock(block")调用上做此范围的功能。

$scope.block = null; 
    $scope.selectBlock = function(block){ 
     $scope.block = block; 
    } 
+0

我不想那样。这会自动加载我所有的模板。我正在尝试修改这里的角度文档示例http://docs.angularjs.org/api/ng.directive:ng只包括将选项列表更改为链接 – GRowing

+0

@PersistentNewbie我已更新答案。 –

+0

如何验证ng-click事件是否正在触发..因为当我点击任何形状或形式时没有发生任何事情? – GRowing