5
給定以下服務,是爲了創建一個「對話」的元素(即,模態):
app.service('dialog', ['$document', '$compile', '$rootScope',
function($document, $compile, $rootScope) {
var body = $document.find('body');
var scope = $rootScope.$new();
this.createDialog = function() {
var dialogElem = angular.element('<div ng-include="\'/dialog.html\'"></div>');
$compile(dialogElem)(scope);
body.append(dialogElem);
};
}
]);
其可在控制器中利用像這樣:
$scope.someFunction = function() {
dialog.createDialog();
};
有一種方法我可以使用$compile
或其他任何在我的服務中沒有HTML的東西?我真的更喜歡只調用一個指令,以便運行createDialog()
立即向我的DOM注入一個指令,因此指令負責將一個新的控制器和模板鏈接在一起。如果我以這種錯誤的方式去做,我完全接受建設性的想法。
我只是做了在這裏的http前面NG-包括: //stackoverflow.com/questions/25043436/angularjs-controller-in-partialview-not-working/25043850#25043850 – coma 2014-09-29 22:13:51
感謝您的鏈接。我不確定我是否遵循與上面所述相比的答案。就其核心而言,我也試圖嘗試在這樣的服務中沒有鬆散的HTML。 – 2014-09-29 22:16:24
哪些HTML?一個內聯?,只需將其作爲模板從url中獲取,是嗎? – coma 2014-09-29 22:21:07