我刚刚开始使用Angular.js,正如我通常所做的那样,我很快就跳到包括jquery和custom.js文件,其中我有所有自定义的小jquery片段,如点击事件等。
当然,这不起作用。
做了一些阅读,结果我必须使用ng-click。
因此,设法通过将此声明传入我的控制器来获得一个片段:
$scope.alert = function(text) {
alert("YES!");
};
你可能想象,不理想。
问题是:
我怎么能有一个custom.js文件,或者一个服务,或其他东西,其中可以包含所有jquery片段,我可以用例如ng-click =“alert”来调用它们,或类似的东西这一点。
我尝试为它构建服务,但我无法让它正常工作。我建立的唯一服务也是我知道在Angular中提供图像的唯一方式,那就是:
'use strict';
//Image service
angular.module('mean.system').factory('ImageSol', [
function() {
return {
logo : 'public/system/assets/img/logo-sol.png'
};
}
]);
对我而言,仅仅能够提供单个图像或单个jquery片段似乎过分了。
答案 0 :(得分:0)
您无法导入所有jQuery插件脚本并在任何需要的地方使用它们(如果可以,请不要!)
您必须为每个插件构建单独的工厂(或服务,...),并通过注入您想要的任何控制器来使用它们。
正如您可能已经注意到的,这是AngularJS背后的主要思想,即依赖注入!
例如,jQuery中有一个警报插件,最近我在角度上使用了很多像这样的工作:
myApp.factory('AlertFac',function() {
return {
alertS:function(message) {
alertify.set({
delay : 5000
});
alertify.success("<span>"+message+"</span>");
//return false;
} }
});
这个 alertify 函数来自一个jQuery插件,我插入到我的html索引中,在jQuery下面
所以,当我需要在我的控制器中发出警报时,我会这样做:
myApp.controller('mainCtrl',function($scope,AlertFac){
if(user clicked on a particular button){
AlertFac.alertS('Hey buddy , whats up ?');
}
})