使用未定义的常量 - 假设id

Chr*_*ris 2 javascript php laravel angularjs

我是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>
Run Code Online (Sandbox Code Playgroud)

在我的main.js身上

function IdController($scope) {
$scope.id = [
    { body: 'some' },
    { body: 'boiler' },
    { body: 'plate' }
];
}
Run Code Online (Sandbox Code Playgroud)

但是,当我加载页面时,我得到Use of undefined constant id - assumed 'id'任何关于我可能出错的地方的想法?

编辑:我已经调整控制器的名字来自$scope.id$scope.ids无济于事,当我改变{{}}为[[]]加载[id.body] 3倍,而不是价值.当我用{{}}运行它时,它给了我同样的错误并被解析为<?php echo id.body; ?>

Ali*_*Ali 13

@在角{{}}块之前使用:

你的代码就像:

    <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>
Run Code Online (Sandbox Code Playgroud)


axe*_*uch 5

这是刀片服务器的问题,您可以将laravel刀片服务器模板令牌的配置从{{}}更改为[[]]

Blade::setContentTags('[[', ']]');
Blade::setEscapedContentTags('[[[', ']]]');
Run Code Online (Sandbox Code Playgroud)

另外,在您的angularjs代码中,您应该在控制器中重命名$scope.id$scope.ids

更新刀片令牌

编辑或您可以覆盖angular的标签定界符

演示

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>
Run Code Online (Sandbox Code Playgroud)

JS

angular.module('main', [])
.config(function ($interpolateProvider) {
    $interpolateProvider.startSymbol('[[');
    $interpolateProvider.endSymbol(']]');
})
.controller('IdController', function ($scope) {
    $scope.ids = [
        { body: 'some' },
        { body: 'boiler' },
        { body: 'plate' }
    ];
});
Run Code Online (Sandbox Code Playgroud)