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