我已經寫了引導酥料餅的一個指令。 popover指令本身工作正常,但是當我將它與ngOptions一起使用時,ngOptions不起作用,並且不會綁定數據以選擇屬性。 該指令代碼是在這裏:ngOptions我的指令衝突並不起作用
app.directive("ngPopover", function() {
return {
restrict: "A",
scope: { popoverVisible: '=', popoverTitle: "=", popoverContent: "=", popoverTrigger: "@", popoverPlacement: "@" },
link: function (scope, iElement, iAttrs) {
if (scope.popoverTrigger) {
$(angular.element(iElement)).popover({
title: scope.popoverTitle,
content: scope.popoverContent,
trigger: (scope.popoverTrigger) ? scope.popoverTrigger : "manual",
placement: (scope.popoverPlacement) ? scope.popoverPlacement : "right"
});
}
scope.$watch(function() { return scope.popoverVisible; }, function() {
$(angular.element(iElement)).popover('destroy');
$(angular.element(iElement)).popover({
title: scope.popoverTitle,
content: scope.popoverContent,
trigger: (scope.popoverTrigger) ? scope.popoverTrigger : "manual",
placement: (scope.popoverPlacement) ? scope.popoverPlacement : "right"
});
if (scope.popoverVisible)
$(angular.element(iElement)).popover('show');
else
$(angular.element(iElement)).popover('hide');
});
}
};
});
這裏是我的視圖代碼:
<div ng-app="app">
<div ng-controller="Ctrl">
<button class="pop btn btn-danger" ng-click="show()">Show</button>
<br />
<select id="select" ng-options="act for act in activities" ng-model="activity" ng-popover
popover-visible="visPopover" popover-content="'Content'">
</select>
<br />
<button ng-click="hide()">Hide</button>
</div>
</div>
這是我的控制器功能:
function Ctrl($scope) {
$scope.visPopover = false;
$scope.activities = ['a1', 'a2', 'a3'];
$scope.activity = 'a1';
$scope.hide = function() {
$scope.visPopover = false;
};
$scope.show = function() {
$scope.visPopover = true;
};
}
如果有任何其他的問題或不良行爲在我的代碼(特別是在書面指示)請讓我知道!
更新:
小提琴鏈接:http://jsfiddle.net/alisabzevari/sZbjt/1/
那是因爲你的指令是創建一個孤立的範圍,其中'activities'is不可用。 – Stewie
我認爲這是,但我改變了我的指令代碼爲一個沒有範圍的指令,並從屬性得到我的指令屬性,但它不起作用。 – alisabzevari
你能用一個例子創建一個jsFiddle嗎? –