我在模板HTML中有ng-if
:
<div ng-if="isImage(item._file) == false">
因此,方法isImage()
位于当前控制器上。我怎样才能做一个常用的方法isImage()
我不会在每个控制器上重复并可以从视图中调用?
答案 0 :(得分:0)
我可以告诉你两种方法。 简单但不理想的方式: 在您的全局控制器或应用程序运行块中:
$rootScope.isImage = function () {
...
return true;
}
rootScope绑定变量可以在应用内部的任何位置访问,因此您不需要将它们放在控制器中。
正确的,稍微复杂一点的方法是使用自定义指令。 我还没有对此进行测试,但有些内容如下:
angular.module('myApp').directive("isImage", function () {
return {
restrict: 'E',
scope: {
src: '=src'
},
link: function (scope, element, attrs) {
if (!isImage(scope.src)) { //your logic for deciding if it's an image here
element.hide();
}
}
};
});
并在你的HTML中:
<is-image src="myImage"></is-image>