Điều này không quá khó để làm nhưng tôi không thể tìm ra cách tốt nhất để làm điều đó.AngularJS - truy cập các thuộc tính chỉ thị cha mẹ từ các chỉ thị con
Tôi có một chỉ thị phụ huynh, như vậy:
directive('editableFieldset', function() {
return {
restrict: 'E',
scope: {
model: '='
},
replace: true,
transclude: true,
template: '
<div class="editable-fieldset" ng-click="edit()">
<div ng-transclude></div>
...
</div>',
controller: ['$scope', function ($scope) {
$scope.edit = ->
$scope.editing = true
// ...
]
};
});
Và một chỉ con:
.directive('editableString', function() {
return {
restrict: 'E',
replace: true,
template: function (element, attrs) {
'<div>
<label>' + attrs.label + '</label>
<p>{{ model.' + attrs.field + ' }}</p>
...
</div>'
},
require: '^editableFieldset'
};
});
Làm thế nào tôi có thể dễ dàng truy cập vào model
và editing
tính chất của chỉ thị mẹ từ chỉ con ? Trong hàm liên kết của tôi, tôi có quyền truy cập vào phạm vi gốc - tôi có nên sử dụng $watch
để xem các thuộc tính này không?
Đặt lại với nhau, những gì tôi muốn có là:
<editable-fieldset model="myModel">
<editable-string label="Some Property" field="property"></editable-string>
<editable-string label="Some Property" field="property"></editable-string>
</editable-fieldset>
Ý tưởng là để có một tập hợp các lĩnh vực hiển thị theo mặc định. Nếu được nhấp vào, chúng sẽ trở thành dữ liệu đầu vào và có thể được chỉnh sửa.
Bạn có thể đưa ra ví dụ về đánh dấu cuối cùng sẽ trông như thế nào không? –
Tôi đã đặt rằng bây giờ –