【问题标题】:Passing value from Django view to AngularJS inserted template将值从 Django 视图传递到 AngularJS 插入的模板
【发布时间】:2015-12-17 10:11:36
【问题描述】:

有没有办法将值从 Django 视图传递到 AngularJS 插入的模板?

在我的 view.py 我有代码:

count_users = Profile.objects.filter(user_id__gte = 0).count()
context_dict = {'users': count_users}
return render_to_response('dashboard.html', context_dict)

在 dashboard.html 中,我可以将用户计数插入到 html 中,如下所示:

{{ users }}

这工作正常,但 dashboard.html 使用 AngularJS 插入更多的 html,如下所示:

<div ui-view class="fade-in-up">
</div>

AngularJS插入的html文件没有响应的mt问题:

{{ users }}

有没有办法将用户的价值传递给 AngularJS 插入的 HTML?

【问题讨论】:

  • users 变量必须附加到 $scope,否则它不会出现在这样的绑定中。
  • 你能解释一下附加到 $scope 是什么意思吗?我不知道那是什么。我该怎么做?
  • 在 Angular 中有一个名为 $scope 的变量。如果你先$scope.someVar = 5 然后{{ someVar }},它就会出现。如果你只做var someVar = 5 然后尝试以同样的方式绑定它 - 它不会起作用。因此,要正确显示您想要的变量,您必须使用 javascript 并将其附加到范围。

标签: html angularjs django django-templates


【解决方案1】:

在你的 javascript 中做:

mainModule
    .config(function($interpolateProvider) {
        $interpolateProvider.startSymbol('{$');
        $interpolateProvider.endSymbol('$}');
});

这样,如果你想在html中绑定一个角度变量,你使用:

{$ variable $}

如果要添加 Django 变量,请使用:

 {{ variable }}

如果您保持原样,您的代码可能会工作,只需将此配置添加到角度模块。

【讨论】:

    【解决方案2】:

    使用 ng-init 你可以将你的值附加到 $scope

    <div ui-view class="fade-in-up" ng-init="User='{{user}}' " >
    
    </div>
    

    【讨论】:

    • 谢谢,太完美了
    • 你能分享你的 Django 和 AngularJS 代码吗?这个解决方案对我不起作用。谢谢。
    猜你喜欢
    • 2015-07-07
    • 2018-02-10
    • 2021-02-03
    • 2020-06-08
    • 1970-01-01
    • 2015-09-18
    • 2013-07-29
    • 2017-04-26
    • 2016-09-28
    相关资源
    最近更新 更多