저는이 문제를 오랫동안 고심 해 왔으며이 문제를 해결하는 방법을 알 수 없습니다.중첩 요소 지시문은 상위 지시문 범위에 액세스 할 수 없습니다.
격자를 설명하는 열 지시문을 포함하는 격자 지시문을 만들려고하지만 열은 요소가 아니며 격자 지시문의 범위에서 선언 된 배열에 열을 추가합니다.
var myApp = angular.module('myApp', [])
.controller('myCtrl', function ($scope, $http) {
})
.directive('mygrid', function() {
return {
restrict: "E",
scope: true,
compile: function ($scope) {
debugger;
$scope.Data = {};
$scope.Data.currentPage = 1;
$scope.Data.rowsPerPage = 10;
$scope.Data.startPage = 1;
$scope.Data.endPage = 5;
$scope.Data.totalRecords = 0;
$scope.Data.tableData = {};
$scope.Data.columns = [];
},
replace: true,
templateUrl: 'mygrid.html',
transclude: true
};
})
.directive('column', function() {
return {
restrict: "E",
scope: true,
controller: function ($scope) {
debugger;
$scope.Data.columns.push({
name: attrs.name
});
}
};
});
그리고 여기에 HTML 마크 업입니다 : : 또한
<body ng-app="myApp">
<div ng-controller="myCtrl">
<input type="text" ng-model="filterGrid" />
<mygrid>
<column name="id">ID</column>
<column name="name">Name</column>
<column name="type">Type</column>
<column name="created">Created</column>
<column name="updated">Updated</column>
</mygrid>
</div>
, 당신이 할 수있는
나는이 문제를 설명하는 가장 좋은 방법은 코드를 볼 볼 생각 jsfiddle에서 실제 코드를 테스트하십시오 : http://jsfiddle.net/BarrCode/aNU5h/컴파일을 시도했는데 c ontroller 및 link를 사용하지만 어떤 이유로 부모 모눈의 열은 정의되지 않습니다.
어떻게 해결할 수 있습니까?
편집 : 나는 그리드에는 myGrid 지침에서 교체 templateUrl, transclude를 제거하면 , 내가 열 지침의 범위를 얻을 수 있습니다.
감사
이 모든 성공? –
그래, 이후 버전의 angularJS에서는 $ scope를 사용하여 부모 지시어를 얻을 수 있습니다. $$ childHead –