Javascript 通过服务在控制器和页面之间共享数据-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

我是AngularJS的新手,我有一个无法解决的问题。 我在我的应用程序的
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;
    }


 }