如何动态地改变当前菜单元素的标题(指令中的模板)
How to dynamically change the Title of current menu element AngularJS (template in directive)
我正在考虑如何解决这个问题。让我们开始:
我的网站有一个菜单栏(或导航栏)。
我从JSON文件中创建它,我使用AngularJS指令和模板来创建它:
JSON文件:{
"mainmenu": [
{
"id": "bananas",
"title": "Bananas",
"href": "#/bananas",
"li-class": "menu-element"
},
{
"id": "apples",
"title": "Apples",
"li-class": "dropdown"
"submenu": [
{
"id": "apple-lot",
"title": "Apples lots",
"href": "#/apples/lot"
},
{
"id": "apple-series",
"title": "Apples series",
"href": "#/apples/series"
}
]
},
{
"id": "cherries",
"title": "Cherries",
"href": "#/cherries",
"li-class": "menu-element"
}
]
}
我的AngularJS指令与模板:
angular.module('dynamic-menu').directive('menuTemplate', function () {
return {
restrict: 'E',
template: "<nav class='"navbar navbar-inverse navbar-fixed-top'" role='"navigation'" id='"nav-bar'" style='"margin-bottom: 0.5%'">"
+ "<div class='"container-fluid'">"
+ "<div class='"navbar-header'">"
+ "<span class='"navbar-brand'">TITLE</span>"
+ "</div>"
+ "<div class='"collapse navbar-collapse'">"
+ "<span class='"navbar-brand'">"
+ "<ul class='"nav navbar-nav'">"
+ "<li ng-repeat='"item in mainmenu'">"
+ "<a href='"{{item.href}}'">{{item.title}}</a>"
+"</li>"
+"</ul> <!-- /.nav navbar-nav -->"
+"</span> <!-- /.navbar-brand -->"
+"</div> <!-- /.navbar-collapse-->"
+"</div> <!-- /.container-fluid-->"
+"</nav>"
};
}]);
和AngularJS控制器:
angular.module('dynamic-menu').controller('dynamicMenuCtrl', ['$scope', '$http', function ($scope, $http) {
$http.get('MenuItems.json').success(function (data) {
$scope.mainmenu = data;
});
问题是-如何动态地改变标题?
我的AngularJS指令中的这一行:
+ "<span class='"navbar-brand'">TITLE</span>"
也许我可以添加一些东西到我的JSON文件,并以某种方式检查是否有一个类分配的活动菜单元素?(例如<li class="menu-item-active">
)或者怎么做?
这是Plunker -有一个Title
,我想在我的模板中动态更改
http://plnkr.co/edit/U1xG2E4ys7SGz7WxBtvq?p =
预览我必须使用指令EDIT: What I want to achieve:
在main page
上我想有标题fruits
,当我在子菜单Bananas
上我想显示标题Bananas
json:
{
"title": "some title",
"mainmenu": [
{
"id": "bananas",
"title": "Bananas",
"href": "#/bananas",
"li-class": "menu-element"
},
{
"id": "apples",
"title": "Apples",
"li-class": "dropdown"
"submenu": [
{
"id": "apple-lot",
"title": "Apples lots",
"href": "#/apples/lot"
},
{
"id": "apple-series",
"title": "Apples series",
"href": "#/apples/series"
}
]
},
{
"id": "cherries",
"title": "Cherries",
"href": "#/cherries",
"li-class": "menu-element"
}
]
}
在模板"<span class='"navbar-brand'">{{title}}</span>"
js:angular.module(动态菜单)。controller('dynamicMenuCtrl', ['$scope', '$http',
function ($scope, $http) {
$http.get('MenuItems.json').success(function (data) {
$scope.mainmenu = data;
$scope.title = data.title;
});
http://plnkr.co/edit/LvObdZB72umVPCfTsVg1?p =预览
相关文章:
- HighCharts长标题文本在某些元素上重叠
- 为li元素添加标题
- <标题>插入SVG的元素不起作用
- 克隆元素时更改标题的文本
- 如何使动态树标题中的span元素可点击
- 如何解析html以删除元素并只返回其位置的标题
- 基于比较子元素内容和目标标题内容的Javascript排序元素
- 如何为CheckedMultiSelect的每个元素添加不同的标题
- 为什么.attr('title')正在抓取前一个元素'的标题
- 如何仅切换标题元素而不切换列表
- jQuery / Javascript方法获取当前页面的标题,将其与字符串匹配,将类分配给该特定元素
- 如何在标题中的所有元素中淡入淡出
- 引导选项卡标题元素中的复杂 html
- 修复了标题导航和滚动到()下一个/上一个元素
- 无法将脚本元素附加到标题
- 使用 javascript 获取元素标题
- 无法使用
导航到正确的元素,因为页面标题窗格已修复(冻结) - Ajax 对 xml 页面的响应以获取标题元素不起作用
- W3C验证器:元素头缺少子元素标题的必需实例
- 如何访问Json中的元素标题