使用anchortag在angularjs中调用函数时感到困惑

时间:2016-12-26 06:05:15

标签: angularjs

我正在开发一个angularjs项目。我有一个下拉列表,其中有新的电子邮件,新的联系人,新的日历功能。但这些功能正在处理特定页面,就像newmessage功能仅适用于电子邮件页面。

我想从任何地方调用newMessage函数,newAddressbook和new calendar functon ... 你能救我吗?

这是我的功能代码。: -

<style name="RatingBar" parent="Theme.AppCompat">
<item name="colorControlNormal">@color/gray</item>
<item name="colorControlActivated">@color/yellow</item>

3 个答案:

答案 0 :(得分:1)

您可能错过的细节可能很少,请尝试将控制器嵌入到您正在使用的相应div中。 或者,您可以将范围声明为“ root ”('$ rootScope')到您的模型中。 希望这会有所帮助。

答案 1 :(得分:1)

这应该适合你。

在app.js中编写以下代码

app.run(['$rootScope', function($rootScope) {
    $rootScope.newMessage = function($event) {
        // do something
    }
    $rootScope.newAddressbook = function($event) {
        // do something
    }
    $rootScope.newCalendar = function($event) {
        // do something
    }
}]);

在Safari和IE中,“javascript:void(0)”被视为不安全,因此请在应用配置中包含以下代码

app.config(['$compileProvider',function($compileProvider) {
    $compileProvider.aHrefSanitizationWhitelist(/^\s*(https?|ftp|mailto|javascript|chrome-extension):/);
}])

// html代码

<a ng-href="javascript:void(0)" ng-click="$root.newMessage($event)">Email</a>
<a href="javascript:void(0)" ng-click="$root.newAddressbook($event)">Contact</a>
<a href="javascript:void(0)" ng-click="$root.newCalendar($event)" >Calendar</a>

答案 2 :(得分:0)

var app = angular.module('SOGo.Common')
   app.controller('navController', navController);
	app.run(['$rootScope', function($rootScope) {
    $rootScope.newMessage = function($event) {
        // do something
    }
    $rootScope.newAddressbook = function($event) {
        // do something
    }
    $rootScope.newCalendar = function($event) {
        // do something
    }
}]);
	


});