Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 访问范围表单ng在新模式中重复_Javascript_Angularjs_Modal Dialog_Angularjs Ng Repeat - Fatal编程技术网

Javascript 访问范围表单ng在新模式中重复

Javascript 访问范围表单ng在新模式中重复,javascript,angularjs,modal-dialog,angularjs-ng-repeat,Javascript,Angularjs,Modal Dialog,Angularjs Ng Repeat,我试图创建一个模式,将打开一篇文章的主要阅读,但我似乎无法获得范围。现在JSON文件只是一个摘录,最终它将成为一篇完整的文章,所以关键是当您单击ReadMore时,它将显示完整的文章 这是我的一本书 很明显,它缺少了很多样式等等,我只是想在那个里找到它的基础 我知道ng repeat创建了一个新的作用域,所以我应该能够访问这个作用域来获得我想要的东西,但我一直在努力弄清楚如何获得这个作用域。我读过一些相关的问题,但是它们都使用了引导模式或类似模式,我似乎没有看到相关的代码 有什么想法吗 编辑:

我试图创建一个模式,将打开一篇文章的主要阅读,但我似乎无法获得范围。现在JSON文件只是一个摘录,最终它将成为一篇完整的文章,所以关键是当您单击ReadMore时,它将显示完整的文章

这是我的一本书

很明显,它缺少了很多样式等等,我只是想在那个里找到它的基础

我知道ng repeat创建了一个新的作用域,所以我应该能够访问这个作用域来获得我想要的东西,但我一直在努力弄清楚如何获得这个作用域。我读过一些相关的问题,但是它们都使用了引导模式或类似模式,我似乎没有看到相关的代码

有什么想法吗

编辑:

通过openArticle函数传递文章可以正确链接文章,但是它仍然不会显示在模式中

app.controller('ArticleListCtrl', function($scope, $http, researchArticleModal) {
    $http.get('research/articles.json').success(function(data) {
        $scope.articles = data;

        $scope.openArticle = function(article) {
            console.log(article);
            $scope.fromFactory = researchArticleModal();
        }
    });
});
控制台记录正确的标题。我更新了plnkr

编辑2:

我认为问题在于,modal创建了自己的范围,而这个范围超出了controllers范围。这可能是我遇到的问题吗

编辑:


因此,问题似乎是创建my modal的工厂创建了自己的范围。我尝试将$scope注入工厂,但出现了一个错误,仍然没有成功。

我建议您将文章传递到父范围上定义的openArticle方法中

您的页脚的单击将如下所示:

<footer><a href="" ng-click="$parent.openArticle(article)">Read More</a></footer>
}))

在模态对话框的标记中,您可以访问作用域的selectedArticle上的属性

比如:

{{selectedArticle.fullArticle}

这有意义吗?

您不能像这样在openArticle()函数中传入文章吗

<a href="" ng-click="$parent.openArticle(article)">Read More</a>


确保作用域中的对象未直接连接到
$scope
<代码>$scope.myObject=>不好,
$scope.anyObject.myObject
=>好。否则,范围层次结构可能会有很多问题。我认为您不需要$parent。因为子对象将从父对象继承。您确定模式的代码工作正常吗?我会独立测试以确认它没有问题Darryl你什么意思?情态炸弹肯定会开火。我相信将函数嵌套在控制器中是我需要$parent的原因。如果没有$parent,什么都不会发生。根本不需要$parent,请参阅我的第一篇评论。我早些时候发誓,如果没有$parent,该函数将无法运行,但您是绝对正确的。我删除了$parent,它仍然运行。我记录了作用域,并且能够删除作用域。对于这两条评论,我深表歉意。按下回车键太快。artile.title=$scope.articles[1]。title;给我第二篇文章的标题。我将尝试你的方法,因为它可能更有意义,最初我将把它设置为索引。一旦你在openArticle方法中访问了文章,你不能用它来访问要在模式窗口中显示的fullArticle属性吗?我如何在openArticle方法中访问该文章?我不确定你是如何打开模式的,但你可以在你的作用域上设置一个与当前所选文章相等的属性,然后在你的模式中使用它。这几乎可以工作,但是我的模式创建了一个新的范围,因此仍然无法访问文章。我如何才能使我的工厂/模式不创建新范围,甚至不访问其他范围?
<div>{{selectedArticle.fullArticle}}</div>
<a href="" ng-click="$parent.openArticle(article)">Read More</a>