2014-09-22 66 views
0

我想在我的自定義指令模板中聲明一個指令。需要注意的是所需的指令應該從我的指令範圍內使用字段:另一個指令模板中的指令:如何使其執行?

angular.module('core.directives') 
.directive('containertable', function() { 
    /** 
    * Startup function for directive 
    */ 
    function link(scope, element, attr) { 
      // ...init of scope.childgridoptions object skipped... 
    } 

    return { 
     link: link, 
     restrict: 'E', 
     scope: { data: '='}, 
     template: "<ng-grid='childgridoptions'></ng-grid>" 
    }; 
} 

它看起來像NG電網指令沒有得到我的指令被調用時,執行儘管我看到的模板在我的頁面的源代碼。也許它需要被編譯或什麼?

+0

你可以使用調試器來檢查是否正在執行的NG網的鏈接功能?如果它的模板顯示出來,看起來應該是這樣。這可能會提供一個線索。 – 2014-09-22 16:30:29

回答

1

這裏是一個PLUNK 與指令的工作示例根據你的榜樣

// main.js 
var app = angular.module('myApp', ['ngGrid']); 
app.controller('MyCtrl', function($scope) { 
    $scope.gridOptions = { data: 'data' }; 
    $scope.myData = [{name: "Moroni", age: 50}, 
        {name: "Tiancum", age: 43}, 
        {name: "Jacob", age: 27}, 
        {name: "Nephi", age: 29}, 
        {name: "Enos", age: 34}]; 
}); 

app.directive('mygrid',function(){ 
    var link = function(scope, element, attrs) { 
    } 
    return { 
    link: link, 
    restrict: 'E', 
    scope: { 
     data: '=', 
     gridoptions: '=' 
    }, 
    template: '<div class="gridStyle" ng-grid="gridoptions"></div>'  
    } 
}); 
+0

謝謝!在我的情況下,我初始化childGridOtions不是$ scope.gridOptions = {data:'data'};但$ scope.gridOptions = {data:scope.data};這是問題。 – 2014-09-23 09:24:33