我是angularjs的新手,在实施一个简单的清单时遇到了一些麻烦。
<html lang="en" ng-app>
<body>
<div ng-controller="IdController" class="id-contain">
<ul>
<li ng-repeat="id in ids">{{ id.body }}</li>
</ul>
</div>
</body>
</html>
在我的main.js
我有
function IdController($scope) {
$scope.id = [
{ body: 'some' },
{ body: 'boiler' },
{ body: 'plate' }
];
}
然而,当我加载页面时,我得到Use of undefined constant id - assumed 'id'
关于我可能出错的地方的任何想法?
修改:我已将控制器中的名称从$scope.id
调整为$scope.ids
无效,当我将{{}}更改为[[]]时,它会加载[[id.body] ] 3次,但不是价值。当我使用{{}}运行它时,它会给我相同的错误,并被解析为<?php echo id.body; ?>
答案 0 :(得分:14)
在角度@
阻止之前使用{{}}
:
您的代码就像:
<html lang="en" ng-app>
<body>
<div ng-controller="IdController" class="id-contain">
<ul>
<li ng-repeat="id in ids"> @{{ id.body }} </li>
</ul>
</div>
</body>
</html>
答案 1 :(得分:4)
刀片存在问题,您可以将{{}}中的刀片模板令牌的laravel配置更改为[[]]
之类的其他内容Blade::setContentTags('[[', ']]');
Blade::setEscapedContentTags('[[[', ']]]');
另外,在您的angularjs代码中,您应该将$scope.id
重命名为控制器中的$scope.ids
更新刀片令牌
编辑或者您可以覆盖角度标记分隔符
<强> HTML 强>:
<div ng-app="main">
<div ng-controller="IdController" class="id-contain">
<ul>
<li ng-repeat="id in ids">[[id.body]]</li>
</ul>
</div>
</div>
<强> JS 强>:
angular.module('main', [])
.config(function ($interpolateProvider) {
$interpolateProvider.startSymbol('[[');
$interpolateProvider.endSymbol(']]');
})
.controller('IdController', function ($scope) {
$scope.ids = [
{ body: 'some' },
{ body: 'boiler' },
{ body: 'plate' }
];
});
答案 2 :(得分:0)
您使用刀片解析器解析html,如果您不需要使用刀片解析器解析此页面,请将文件从myfield.blade.php
重命名为myfile.php