2015-03-04 36 views
6

Tôi muốn có được một giá trị trực tiếp từ một chỉ thị thuộc tính:góc giá trị chỉ thị thuộc tính

<form cronos-dataset="People as p"> 
    Form Content 
</form> 

Trong JS của tôi, tôi đã cố gắng:

app.directive('cronosDataset',[function() { 
    return { 
    restrict: 'A', 
    controller: 'CronosGenericDatasetController', 
    scope: { 
     "cronos-dataset" : '@' 
    } 
    }; 
}]) 

.controller("CronosGenericDatasetController",['$scope', function($scope) { 
    alert($scope["cronos-dataset"]); 
}]); 

tôi muốn thông báo với "People as p" chuỗi nhưng tôi nhận undefined. Đó có phải là con đường đúng hay tôi nên đi một cách tiếp cận hoàn toàn khác?

+1

bạn cần sử dụng '$ timeout (function() {alert ($ scope [" cronos-dataset "]);})' bên trong controller –

+0

Bạn có thể crate plnkr/fiddle không? Mã của bạn sẽ hoạt động tốt. http://plnkr.co/edit/2gdUSFoWXUTJAONqGLqn?p=preview –

Trả lời

7

Bạn có nghĩa vụ phải có camelCase trong việc kê khai phạm vi

app.directive('cronosDataset',[function() { 
    return { 
    restrict: 'A', 
    controller: 'CronosGenericDatasetController', 
    scope: { 
     cronosDataset : '@' 
    } 
    }; 
}]) 

Đây là một bản demo để xem biến thể khác nhau http://plnkr.co/edit/G6BiGgs4pzNqLW2sSMt7?p=preview

+0

Tốt nhất. Cảm ơn. –

+0

Wow! Điều đó đã làm các trick! Cảm ơn nhiều! – nanndoj

+0

Không sao cả! – HarryH

4

Thực hiện một chức năng liên kết thay vì:

app.directive('cronosDataset',[function() { 
    return { 
    scope: {}, 
    restrict: 'A', 
    link: function (scope, elem, attrs) { 
     alert(attrs.cronosDataset); 
    } 
+0

anh ấy muốn gọi bên trong bộ điều khiển không có chức năng liên kết? –

+0

Thông báo đó! Cảm ơn nhưng tôi cần phải gọi nó bên trong một bộ điều khiển! – nanndoj

Các vấn đề liên quan