我正在使用Ionic制作移动应用。我存储了“蓝色”作为初始值。现在我想改变服务中的价值。
.factory('repository', function() {
var theme="button-calm";
setTheme: function(input){
theme=input;
},
getTheme: function(){
return theme;
}
但我不知道为什么主题不能改变。
答案 0 :(得分:3)
您工厂的语法似乎有点过时,请确保您的工厂返回一个javascript对象:
// remove certain classes and styles for devices less than 991px
$(document).ready(function(){
$('#opt-pos-img-responsive > div').css('border','1px dotted blue');
if($('#opt-pos-img-responsive > div').hasClass('.caption2')) // check whether it has the class and change img position
{
$('img-responsive').css('float','right !important');
}
else if($('#opt-pos-img-responsive > div').hasClass('.caption1'))
{
$('img-responsive').css('float','left !important');
}
}
});
接下来将工厂注入您的控制器
app.factory('repository', function() {
var theme="button-calm";
return {
setTheme: function(input){
theme = input;
},
getTheme: function(){
return theme;
}
}
});
然后在你的控制器中你可以设置/获取主题:
app.controller('SomeController', ['repository', function(repository) {
...
请参阅此plnkr以获取一个工作示例:http://plnkr.co/edit/T6OoL10QzCK6hoX1HZc8?p=preview
答案 1 :(得分:0)
请尝试使用此服务:
(function(){
service('repositoryService', function(){
var service = {
theme : "button-calm";
getTheme : function(){
return this.theme;
},
setTheme : function(input){
this.theme = input;
}
};
return service;
});
})();
显然,您需要在控制器中引用repositoryService
,就像您需要引用repository
一样。