我对AngularJS很陌生,我试图了解一些事情。 首先,我有我的控制器,我将在这里放置一个片段:
var OfficeUIRibbon = angular.module('OfficeUIRibbon');
// Defines the OfficeUIRibbon controller for the application.
OfficeUIRibbon.controller('OfficeUIRibbon', ['$scope', '$http', function($scope, $http) {
var ribbon = this;
ribbon.setApplicationMenuAsActive = function() {
ribbon.applicationMenuActive = true;
}
}
然后我有一个指令:
var OfficeUIRibbon = angular.module('OfficeUIRibbon');
OfficeUIRibbon.directive('ribbonApplicationMenu', function() {
return {
restrict: 'E',
replace: false,
scope: {
data: '@'
},
templateUrl: function(element, attributes) {
return attributes.templateurl;
}
}
});
该指令的调用如下:
<ribbon-application-menu templateUrl="/OfficeUI.Beta/Resources/Templates/ApplicationMenu.html" data="/OfficeUI.Beta/Resources/JSon/Ribbon/ribbon.json"></ribbon-application-menu>
这一切都有效,在我的指令模板中,放置了以下内容:
<div id="application" id="applicationMenuHolder" ng-controller="OfficeUIRibbon as OfficeUIRibbon" ng-show="OfficeUIRibbon.applicationMenuActive"...
从另一个元素内部,当我执行一次单击时,我的控制器上的一个函数被执行:
ng-click="OfficeUIRibbon.setApplicationMenuAsActive()"
这是来自另一个元素的指令:
OfficeUIRibbon.directive('ribbon', function() {
return {
restrict: 'E',
replace: false,
scope: {
data: '@'
},
templateUrl: function(element, attributes) {
return attributes.templateurl;
}
}
});
此功能确实改变了属性&#34; applicationMenuActive&#34;在功能区本身上,应该使指令模板中的项目显示出来。
但是,这不起作用。我猜我需要看这个属性,以便视图得到相应的更新。
任何人都知道如何做到这一点?