Tôi đang phát triển một chỉ thị hiển thị và ẩn nội dung của nó dựa trên sự kiện nhấp (ng-click) được xác định trong mẫu của nó. Trên một số quan điểm mà chỉ thị được sử dụng, tôi muốn có thể biết nếu chỉ thị hiện đang hiển thị hoặc ẩn nội dung của nó để tôi có thể trả lời các thay đổi DOM. Chỉ thị có phạm vi phân lập và tôi đang cố gắng thông báo cho phạm vi phụ huynh khi chỉ thị đã được "chuyển đổi". Tôi đang cố gắng thực hiện điều này bằng cách chuyển một hàm gọi lại đến chỉ thị nơi nó được sử dụng có thể được gọi khi trạng thái của chỉ thị thay đổi tức là ẩn hoặc hiển thịChức năng gọi trên phạm vi phụ huynh chỉ thị với đối số phạm vi chỉ thị
Tôi không chắc chắn cách thực hiện chính xác trạng thái này của chỉ thị (ẩn hoặc hiển thị) được lưu trữ trong phạm vi cô lập của chỉ thị và được xác định sau khi nhấp chuột ng. Vì vậy, tôi cần gọi hàm của phạm vi cha mẹ từ bên trong chỉ thị và không phải từ việc thực hiện chế độ xem.
Điều này sẽ làm cho WAAY có ý nghĩa hơn với ví dụ. Dưới đây là một plunked chứng minh những gì tôi muốn làm:
http://plnkr.co/edit/hHwwxjssOKiphTSO1VIS?p=info
var app = angular.module('main-module',[])
app.controller('MainController', function($scope){
$scope.myValue = 'test value';
$scope.parentToggle = function(value){
$scope.myValue = value;
};
});
app.directive('toggle', function(){
return {
restrict: 'A',
template: '<a ng-click="toggle();">Click Me</a>',
replace: true,
scope: {
OnToggle: '&'
},
link: function($scope, elem, attrs, controller) {
$scope.toggleValue = false;
$scope.toggle = function() {
$scope.toggleValue = !$scope.toggleValue;
$scope.OnToggle($scope.toggleValue)
};
}
};
});
Tôi tương đối mới để kiễu góc. Đây có phải là một ý tưởng tồi để bắt đầu? Tôi có nên sử dụng một dịch vụ hoặc một thứ gì đó thay vì chuyển qua các hàm refs không?
Cảm ơn!
Đó là những gì tôi cần. Cảm ơn ngài. – Nick
@Nick Tôi đã đào sâu hơn một chút và thêm một thay thế bằng cách sử dụng '&' để ràng buộc chức năng của phạm vi gốc. Có lẽ đây là nhiều hơn * Angularish *. – Sebastian
Plunker của bạn thực hiện chính xác những gì tôi đang cố gắng làm, nhưng tôi đang gặp sự cố khi chuyển nó vào mã của tôi.Có lý do nào nó sẽ không hoạt động đối với một chỉ thị kiểu Element không? Hoặc có bất cứ điều gì tôi sẽ cần phải làm khác nhau? – stranger