有没有一种方法可以让我们创建一个全局函数,可以在angularjs中访问应用程序中的所有视图
我正在用ionic framework开发phonegap应用程序,在这个应用程序中,我在所有视图中都有13个控制器和13个视图文件,我需要调用相同的函数formateDateWithExtraValue(user.date),要调用这个函数,我必须在所有13个控制器中声明这个函数,如下面所示 $scope.formateDateWithExtraValue=函数(Udate){ “我的代码在这里” 返回结果; } 有没有一种方法可以让我们全局地编写这个函数,这样就可以在所有视图中访问它。 就像在PropertyView.html中一样有没有一种方法可以让我们创建一个全局函数,可以在angularjs中访问应用程序中的所有视图,angularjs,Angularjs,我正在用ionic framework开发phonegap应用程序,在这个应用程序中,我在所有视图中都有13个控制器和13个视图文件,我需要调用相同的函数formateDateWithExtraValue(user.date),要调用这个函数,我必须在所有13个控制器中声明这个函数,如下面所示 $scope.formateDateWithExtraValue=函数(Udate){ “我的代码在这里” 返回结果; } 有没有一种方法可以让我们全局地编写这个函数,这样就可以在所有视图中访问它。 就像
{{formateDateWithExtraValue(user.date)}在视图中实现这种格式的最合适的方法是使用过滤器。最终结果将允许在所有视图中使用格式化功能 我在这里提供了一个工作示例: 代码
angular
.module("app", [])
.controller("Controller1", function() {
this.originalValue = " I have too many spaces !!";
})
.controller("Controller2", function($filter) {
this.originalValue= "I also have too many spaces!!"
var removespaces = $filter("removespaces");
this.extra = removespaces("Something extra you can do");
})
.filter("removespaces", function() {
return function(value) {
if (typeof value === "string") {
return value
.split(" ")
.filter(function(f) {
return f !== "";
})
.join(" ");
} else {
return value;
}
};
});
查看
<div ng-app="app">
<p>
Demonstrates using of filter across multiple controllers.
</p>
<div ng-controller="Controller1 as $ctrl">
<h2>Controller1</h2>
<p>
Original Value:<pre>{{ $ctrl.originalValue }}</pre>
</p>
<p>
filtered: <pre>{{ $ctrl.modifiedInCtrl | removespaces }}</pre>
</p>
</div>
<div ng-controller="Controller2 as $ctrl">
<h2>Controller2</h2>
<p>
Original Value:<pre>{{ $ctrl.originalValue }}</pre>
</p>
<p>
filtered: <pre>{{ $ctrl.originalValue | removespaces }}</pre>
</p>
<p>
extra (using the filter in a controller): <pre>{{ $ctrl.extra }}</pre>
</p>
</div>
</div>
演示如何跨多个控制器使用筛选器。
控制器1
原始值:{{$ctrl.originalValue}}
筛选:{{$ctrl.modifiedInCtrl | removespaces}}
控制器2
原始值:{{$ctrl.originalValue}}
已筛选:{$ctrl.originalValue | removespaces}
额外(在控制器中使用筛选器):{{$ctrl.extra}
此处的更多信息:是的,对于我的情况,过滤器是最好的解决方案,但是$rootScope也可以工作,但是根据文档,过滤器是最终的解决方案,