0
是否可以注入(或可能是合併會更好一點)從ngRoute模板到指令模板中?將模板從ngRoute導入指令AngularJS
讓我們例子說明:
沒有與ngRoute
angular.module('dynamic-menu').config(['$routeProvider', function ($routeProvider) {
$routeProvider.when('#', {
controller: 'MainController',
template: '<p>Main Page</p>'
});
$routeProvider.when('#/productReturn/', {
controller: 'ProductReturnController',
template: '<p>Product Return Page</p>'
});
$routeProvider.when('#/demand/', {
controller: 'DemandController',
template: '<p>Demand Page</p>'
});
}]);
我不知道,我們需要一個控制器做某事一個配置?
而且指令:
angular.module('dynamic-menu').directive('menuTemplate', ['$compile', function ($compile) {
return {
restrict: 'E',
link: function (scope, element, attrs) {
var template = {
'searcher': "<nav class=\"navbar navbar-inverse navbar-fixed-top\" role=\"navigation\" id=\"nav-bar\">"
+ "<div class=\"container-fluid\">"
+ "<div class=\"navbar-header\">"
+ "<span class=\"navbar-brand\" > INSERT TEMPLATE HERE </span>"
+ "</div>"
+ "</div> <!-- /.container-fluid -->"
+ "</nav>",
'main' : (...) <- not important
}; //var template END
var templateObj;
if (attrs.templateName) {
templateObj = $compile(template[attrs.templateName])(scope);
}
else {
templateObj = $compile(template['main'])(scope);
}
element.append(templateObj);
}
};
}]);
這裏是哪裏我要粘貼模板指令線:
"<span class=\"navbar-brand\" > INSERT TEMPLATE HERE (for. ex. <p>Product Return Page</p>) </span>"
而在HTML
<menu-template template-name="searcher"></menu-template>
可能嗎?
或者可能 - 如何將Controller中的值傳遞到沒有ng-view的指令中?
angular.module('dynamic-menu').controller('ProductReturnController', ['$scope', function ($scope) {
$scope.header = "PROOODDUUUCCCTTT REEETUUURRRNNN TTTITTTTLEEEEE";
}]);
UPDATE:
我有幾個頁面,。恩。在page1
我會用我的<menu-template template-name="main"></menu-template>
和page2
page3
page4
- 這些網頁裏面,我會用我的<menu-template template-name="searcher"></menu-template>
的事情是 - ,在「搜索」模板會有幾個子頁面,並且每個子頁將有一個獨特的模板,我想dipslay –
@karolinka,我不完全確定你的意思是「subpage」在這裏...編輯你的問題與你想要實現的例子。你的問題被定義爲「如何做X」,但它的基礎可能是實現「Y」的願望 - 讓我們關注「Y」(參見[XY問題](http://meta.stackexchange.com/questions/) 66377 /這是什麼xy問題)) –
我做了一個更新,也許現在它會更乾淨。查看整個代碼,因爲我在幾乎所有的「代碼」部分中糾正了 –