javascript - AngularJS ng-repeat 没有从 crontoller 获取数据
问题描述
我正在尝试在 in 的 div 内执行 ng-repeat <section>
,index.html
但未评估控制器中的值。
模块:
'use strict';
/**
* @ngdoc overview
* @description
*
* Main module of the application.
*/
angular
.module('myModule', [
'ngAnimate',
'ngCookies',
'ngResource',
'ngRoute',
'ngSanitize',
'ngTouch',
])
.config(function ($routeProvider) {
$routeProvider
.when('/', {
templateUrl: 'views/main.html',
controller: 'mainCtrl',
controllerAs: 'main'
})
.otherwise({
redirectTo: '/'
});
});
控制器:
'use strict';
/**
* @ngdoc function
* @description
* # mainCtrl
*/
angular.module('myModule')
.controller('mainCtrl', function ($scope) {
var rndNumber = Math.random() * 10;
var rndMetros = Math.random() * 100;
$scope.imoveis = {
'desc': 'Casa Residencial',
'end': 'Villa Formosa',
'cidade': 'Campo Grande/SP',
'img': '../../images/thumb-imovel.png',
'random': rndNumber,
'metrosUtil': rndMetros,
'metrosTotal': rndMetros
}, {
'desc': 'Casa Residencial',
'end': 'Villa Formosa',
'cidade': 'Campo Grande/SP',
'img': '../../images/thumb-imovel.png',
'random': rndNumber,
'metrosUtil': rndMetros,
'metrosTotal': rndMetros
}, {
'desc': 'Casa Residencial',
'end': 'Villa Formosa',
'cidade': 'Campo Grande/SP',
'img': '../../images/thumb-imovel.png',
'random': rndNumber,
'metrosUtil': rndMetros,
'metrosTotal': rndMetros
}, {
'desc': 'Casa Residencial',
'end': 'Villa Formosa',
'cidade': 'Campo Grande/SP',
'img': '../../images/thumb-imovel.png',
'random': rndNumber,
'metrosUtil': rndMetros,
'metrosTotal': rndMetros
}, {
'desc': 'Casa Residencial',
'end': 'Villa Formosa',
'cidade': 'Campo Grande/SP',
'img': '../../images/thumb-imovel.png',
'random': rndNumber,
'metrosUtil': rndMetros,
'metrosTotal': rndMetros
}, {
'desc': 'Casa Residencial',
'end': 'Villa Formosa',
'cidade': 'Campo Grande/SP',
'img': '../../images/thumb-imovel.png',
'random': rndNumber,
'metrosUtil': rndMetros,
'metrosTotal': rndMetros
};
})
index.html(缩短):
<body ng-repeat="imovel in imoveis">
<section>
<div class="imovel-thumb-container">
<div class="container">
<div class="row">
<div class="col-md-3 card" ng-repeat="imovel in imoveis">
<img class="card-img-top" ng-src="{{imovel.img}}" alt="imagem do imóvel resultante da busca">
<div class="card-body">
<div class="card-title">
<h4 class=".card-text"><span>{{imovel.desc}}</span> -{{imovel.end}}</h4>
</div>
<h5 class=".card-text">{{imovel.cidade}}</h5>
<div class="card-ico-container">
<div class="ico-banheira">
<span>{{imovel.random}}</span><img src="../images/ico-banheira.png">
</div>
<div class="ico-solteiro">
<span>{{imovel.random}}</span><img src="../images/ico-solt.png">
</div>
<div class="ico-casal">
<span>{{imovel.random}}</span><img src="../images/ico-casal.png">
</div>
<div class="ico-garagem">
<span>{{imovel.random}}</span><img src="../images/ico-garagem.png">
</div>
</div>
<div class="metros-container">
<div class="mts-util">
{{imovel.metrosUtil}}
</div>
<div class="mts-total">
{{imovel.metrosTotal}}
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
</body>
这些imoveis:{}
对象都是一样的。我是 AngularJS 的新手,我不知道我做错了什么,即使我用谷歌搜索了它,而且,对于我所看到的,我的代码是根据我搜索的(尽管我确实有可能成为错误的)。
另外我想再问一个问题:
我试图在我的控制器中使用范围隔离功能,但是我使用的 js linter 给我带来了错误:
(function() {
angular.module('myModule')
.controller('mainCtrl', function ($scope) {
// controller logic
})();
我做错了什么?
对不起这么多代码和问题。
解决方案
您在声明对象数组时犯了错误。
ng-repeat 仅在数组中有效。
所以你应该像这样声明你的数据:
$scope.imoveis = [
{
'desc': 'Casa Residencial',
'end': 'Villa Formosa',
'cidade': 'Campo Grande/SP',
'img': '../../images/thumb-imovel.png',
'random': rndNumber,
'metrosUtil': rndMetros,
'metrosTotal': rndMetros
}, {
'desc': 'Casa Residencial',
'end': 'Villa Formosa',
'cidade': 'Campo Grande/SP',
'img': '../../images/thumb-imovel.png',
'random': rndNumber,
'metrosUtil': rndMetros,
'metrosTotal': rndMetros
}
]
推荐阅读
- javascript - 为什么在承诺给我一个错误之后在 ExpressJS 中使用 then() 回调?
- php - 如何将带有 alpha 的唯一变量转换为只有整数的唯一变量?
- ios - 将图像放在文件夹引用中是否仍允许 @2x 和 @3x 优化?
- shell - 在 awk 中按特定顺序打印文件
- c# - iText C#中的自定义标签工作者
- excel - 循环文本框值
- google-cloud-platform - 我应该使用 pub/sub
- celery - 需要帮助在 Airflow 的配置和 Celery Executor 中设置 BROKER_URL
- java - 软删除:在 Spring Boot JPA Hibernate 中删除 @OneToMany 关系中的父实体后未删除子实体
- html - 当空格 b/w 标签和文本在 r 中变化时,从向量中删除 html 标签