Tôi có một chỉ thị được gọi là mẫu, mã cho mẫu giống như dưới đây.Vấn đề với phạm vi accordion góc
var templates = function($compile,$parse){
var directive = {
restrict: 'EA',
replace: true,
link: link
};
return directive;
function link(scope, element, attrs) {
scope.name = "testName";
var isHtmlCompiled = false;
}
};
angular.module('templateModules', [])
.directive('templates', templates);
này được sử dụng chủ yếu để biên dịch mã html và hiển thị nó.Nhưng cho sự hiểu biết tốt hơn về câu hỏi tôi không sử dụng nó cho mục đích đó trong ví dụ. Tệp app.js giống như bên dưới
angular.module('ui.bootstrap.demo', ['ui.bootstrap','templateModules']);
angular.module('ui.bootstrap.demo').controller('AccordionDemoCtrl', function ($scope) {
$scope.oneAtATime = true;
$scope.groups = [
{
title: 'Dynamic Group Header - 1',
content: 'Dynamic Group Body - 1'
},
{
title: 'Dynamic Group Header - 2',
content: 'Dynamic Group Body - 2'
}
];
$scope.items = ['Item 1', 'Item 2', 'Item 3'];
$scope.addItem = function() {
var newItemNo = $scope.items.length + 1;
$scope.items.push('Item ' + newItemNo);
};
$scope.add = function(){
alert($scope.name);
}
$scope.status = {
isFirstOpen: true,
isFirstDisabled: false
};
});
index.html đang sử dụng accordion như dưới đây.
<!doctype html>
<html ng-app="ui.bootstrap.demo">
<head>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.13/angular.js"></script>
<script src="//angular-ui.github.io/bootstrap/ui-bootstrap-tpls-0.13.1.js"></script>
<script src="app.js"></script>
<script src="template.js"></script>
<link href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div ng-controller="AccordionDemoCtrl">
<accordion close-others="oneAtATime">
<accordion-group heading="Static Header, initially expanded" is-open="status.isFirstOpen" is-disabled="status.isFirstDisabled">
This content is straight in the template.
</accordion-group>
</accordion>
<accordion close-others="oneAtATime">
<accordion-group heading="DYnamic" is-open="status.open" is-disabled="status.isFirstDisabled">
<div templates="something"></div>
<button ng-click="add()">Add</button>
</accordion-group>
</accordion>
</div>
</body>
</html>
Vấn đề tôi đang gặp phải là tôi không thể lấy giá trị phạm vi.name từ mẫu trong AccordionDemoCtrl. Có cách nào để có được giá trị đó trong AccordionDemoCtrl không?
Mã của bạn dường như chưa hoàn chỉnh, chẳng hạn như định nghĩa của 'launch' và * chỉ thị khác * ... Bạn có thể thu nhỏ vấn đề xuống mã ít hơn và đặt nó trên JSFiddle , v.v. – Joy
Tôi đã sửa đổi câu hỏi – robin