我想在我的前端使用一個小的AngularJS,但仍然遇到從後端推送數據的問題。我的後端是具有Handlebars模板的Node.js/Express/Mongoose/Mongo。
我想一個數組傳遞到角$範圍變化,但它一直轟炸與以下表達式錯誤的意外結束:
Error: [$parse:ueoe] http://errors.angularjs.org/1.4.6/$parse/ueoe?p0=posts%3D%7B
at Error (native)
at http://localhost:3000/js/vendor/angular/angular.min.js:6:416
at Object.s.peekToken (http://localhost:3000/js/vendor/angular/angular.min.js:209:514)
at Object.s.object (http://localhost:3000/js/vendor/angular/angular.min.js:208:336)
at Object.s.primary (http://localhost:3000/js/vendor/angular/angular.min.js:205:503)
at Object.s.unary (http://localhost:3000/js/vendor/angular/angular.min.js:205:342)
at Object.s.multiplicative (http://localhost:3000/js/vendor/angular/angular.min.js:205:88)
at Object.s.additive (http://localhost:3000/js/vendor/angular/angular.min.js:204:430)
at Object.s.relational (http://localhost:3000/js/vendor/angular/angular.min.js:204:265)
at Object.s.equality (http://localhost:3000/js/vendor/angular/angular.min.js:204:90) <div class="container ng-scope" ng-controller="infiniteScrollCtrl" ng-init="posts={" _id":"55fb04878dabb2842d3deaeb","title":"my="" sixth="" post"}>
這是我的代碼如下所示:
<div class="container" ng-controller="MyController" ng-init="posts={{{ data.posts }}}">
<div class="row" ng-repeat='post in posts'>
<div>
{[{ post.title }]};
</div>
</div>
將角插補符號重新配置爲{[{以免與把手衝突。
app.config(function($interpolateProvider) {
$interpolateProvider.startSymbol('{[{');
$interpolateProvider.endSymbol('}]}');
});
這裏是data.posts樣子:
{"_id":"55fb04878dabb2842d3deaeb","title":"My Test Post"}
任何幫助將不勝感激!
是您的實際代碼缺少在容器上雙引號'NG-init'屬性? – Pointy
對於'ng-init',這不是[適當使用](https://docs.angularjs.org/api/ng/directive/ngInit)。 'ng-init'是一個指令,有一個優先級,這意味着當其他組件可能會有數據可用時它可能運行也可能不運行。除此之外,你聲明你改變了'$ interpolateProvider'爲'{[{}]}',但'ng-init'語句使用'{{{}}}''。 – Claies
看着你的錯誤,與你發佈的實際代碼相比,你甚至不清楚你試圖在這裏通過什麼。這就是錯誤說你的代碼如下所示:'ng-init =「posts = {」_id「:」55fb04878dabb2842d3deaeb「,」title「:」my =「」sixth =「」post「}; =」「 '對我來說,這看起來像一個無效的JSON對象,假設在這裏使用'ng-init'是合適的。 – Claies