Javascript 如何在AngularJS ng重复循环中将长JSON路径缩短为变量?

Javascript 如何在AngularJS ng重复循环中将长JSON路径缩短为变量?,javascript,json,angularjs,ng-repeat,Javascript,Json,Angularjs,Ng Repeat,在ng repeat循环中,我多次使用较长的对象属性路径,其中大部分只有最后一段不同: <div id="projects" ng-app="portfolio"> <div id="projectsList" ng-controller="ProjectsListController as projectsList"> <div class="projectItem" ng-repeat="projectItem in projectsLi

在ng repeat循环中,我多次使用较长的对象属性路径,其中大部分只有最后一段不同:

<div id="projects" ng-app="portfolio">
    <div id="projectsList" ng-controller="ProjectsListController as projectsList">
        <div class="projectItem" ng-repeat="projectItem in projectsList.projectsListData._embedded.projects">
            <div class="project-image">
                <img
                    ng-src="{{projectItem._embedded.images[0].src}}"
                    title="{{projectItem.title}} - {{projectItem._embedded.images[0].title}}"
                    alt="{{projectItem.title}} - {{projectItem._embedded.images[0].title}}"
                />
            </div>
        </div>
    </div>
</div>

保存控制器中的projectsList.projectsListData.\u embedded.project以进行如下示例所示的项目,然后在视图中调用projectsList.project:

angular
  .module('app', [])
  .controller('ProjectsListController', ProjectsListController)

function ProjectsListController() {
  var vm = this;

  vm.project = projectsList.projectsListData._embedded.project;
}

使用ngInit在ngRepeat中为项目的属性添加别名

 <div id="projects" ng-app="portfolio">
        <div id="projectsList" ng-controller="ProjectsListController as projectsList">
            <div class="projectItem" 
                 ng-repeat="projectItem in projectsList.projectsListData._embedded.project" 
                 ng-init="image=projectItem._embedded.images[0]">
                <div class="project-image">
                    <img 
                       ng-src="{{image.src}}"
                       title="{{projectItem.title}} - {{image.title}}"
                       alt="{{projectItem.title}} - {{image.title}}"/>
                </div>
            </div>
        </div>
    </div>
这样的办法应该行得通


这里有一个我放在一起的小例子:

它不起作用,我认为它不能起作用,因为变量{{src}和{title}没有定义。@automatix耶,你说得对。我原以为会的,但我测试了一下,结果不会。请参阅我的更新答案以了解您的解决方案。我还附带了一个例子.projectsList.projectsListData.\u embedded.project不是问题所在-我已经用一个简短的projectItem替换了它。但是我还想对路径开始和最后一部分之间的段使用一个较短的字符串,例如myVar而不是projectItem。_embedded.images[0]请参阅我问题更新中的PHP示例。
 <div id="projects" ng-app="portfolio">
        <div id="projectsList" ng-controller="ProjectsListController as projectsList">
            <div class="projectItem" 
                 ng-repeat="projectItem in projectsList.projectsListData._embedded.project" 
                 ng-init="image=projectItem._embedded.images[0]">
                <div class="project-image">
                    <img 
                       ng-src="{{image.src}}"
                       title="{{projectItem.title}} - {{image.title}}"
                       alt="{{projectItem.title}} - {{image.title}}"/>
                </div>
            </div>
        </div>
    </div>