为什么我的角度模块没有看到从PHP传递的这个var?

时间:2016-05-25 21:46:16

标签: angularjs

我正在使用这个包将php传递给javascript。

laracasts/utilities

我按照说明安装了。

我在控制器中有这个;

use Laracasts\Utilities\JavaScript\JavaScriptFacade as JavaScript;

public function quiz()
{
    $user = Auth::user();

    JavaScript::put([
        'profile' => $user
    ]);

    return View::make ('quiz');
}

这是我的观点;

<div ng-app="quiz"
     ng-controller="QuizController"
     ng-cloak>

    This quiz goes here...
    @include('footer')
    <div class="row">
        <script>console.log(app.profile);</script>
    </div>
    <div>
        <pre>
            <code>Profile: @{{ profile.name | json }}</code>
        </pre>
    </div>
</div>

然后我的js

var app = angular.module('quiz', []);

app.controller('QuizController', ['$scope', '$http', function($scope, $http) {

$scope.profile = app.profile;

console.log(app.profile);

}]);

现在真的很奇怪。

当我在视图中使用console.log app.profile时,它可以工作。我看到了预期的对象。但是,js中的console.log和<pre>标记的输出都返回undefined。

怎么样?

1 个答案:

答案 0 :(得分:0)

... Grrrrrr

这回答我自己的问题似乎很荒谬和遗憾,但显然你不能在javascript配置中为你的vars使用相同的命名空间,因为你使用了应用程序的名称。

app&amp; app no dice。

app和测验 - 工作。

希望这可以帮助那些可能会被这个简单障碍困扰的人。