Javascript 通过服务在控制器和页面之间共享数据-AngularJS
我是AngularJS的新手,我有一个无法解决的问题。 我在我的应用程序的Javascript 通过服务在控制器和页面之间共享数据-AngularJS,javascript,angularjs,data-binding,controller,data-sharing,Javascript,Angularjs,Data Binding,Controller,Data Sharing,我是AngularJS的新手,我有一个无法解决的问题。 我在我的应用程序的index.html页面中,我让用户点击一个图标,以这种方式将他发送到另一个页面: <div class="col-sm-2"> <a href="text.html"> <img src="../icon-modify.png" id="img-mod-1"> </a> </div> EditorController
index.html
页面中,我让用户点击一个图标,以这种方式将他发送到另一个页面:
<div class="col-sm-2">
<a href="text.html">
<img src="../icon-modify.png" id="img-mod-1">
</a>
</div>
EditorController.js
testApp.controller('NewspaperController',
function NewspaperController($scope, Article, $log) {
$scope.input = Article.getArticleObject();
console.log($scope.input);
}
testApp.controller('EditorController',
function EditorController($scope, Article, $log) {
$scope.input = Article.getArticleObject();
$scope.setData = function(ArticleObject){
if (ArticleObject === undefined ) {
console.log ("its undefined");
} else {
console.log (ArticleObject);
Article.setArticleObject(ArticleObject);
}
这里是我的服务Article.js
,用于数据存储:
testApp.factory ('Article', function(){
article = {};
article.titlearticle2 = 'This is a title';
article.subtitlearticle2 = 'This is a subtitle';
return {
setArticleObject: function (articleObject) {
article = articleObject;
},
getArticleObject: function () {
return article;
}
}
问题是方法setData(input)
似乎不起作用,可能是因为我传递了一个错误的对象
?
此外,方法getArticleObject()
工作得很好,因为我使用服务初始化了标题和副标题,它工作得很好
希望你能帮助我。提前谢谢 您的服务代码似乎不完整且缩进不正确。把我扔了一会儿。谢谢,我真的不明白错误在哪里。数一数左大括号、括号和右括号的数目。看来你错过了})。我知道分号是可选的,但是也有分号是一种很好的做法。这里的“}”是,我只是忘了把它作为代码的一部分。您需要使用ng控制器在div内移动按钮(这就是为什么setData从不触发)。2.你不应该把按钮放在标签里。移除a标记并通过setData函数中的window.location.href或location.path设置路径。你可能在页面间持久化数据方面有问题,如果是这样,你需要在angularjs中将你的应用程序设置为单页应用程序。希望这有帮助
testApp.controller('EditorController',
function EditorController($scope, Article, $log) {
$scope.input = Article.getArticleObject();
$scope.setData = function(ArticleObject){
if (ArticleObject === undefined ) {
console.log ("its undefined");
} else {
console.log (ArticleObject);
Article.setArticleObject(ArticleObject);
}
testApp.factory ('Article', function(){
article = {};
article.titlearticle2 = 'This is a title';
article.subtitlearticle2 = 'This is a subtitle';
return {
setArticleObject: function (articleObject) {
article = articleObject;
},
getArticleObject: function () {
return article;
}
}