【问题标题】:Passing a string from flask to angularjs将字符串从烧瓶传递到 angularjs
【发布时间】:2015-02-13 15:58:25
【问题描述】:

我将一个变量从烧瓶传递到这样的模板

    @app.route('/')
    def respond():
        return render_template('index.html', bar='foo')

在附加到该页面正文的 angularjs 控制器中,我有这样的功能:

$scope.init = function(bar){
        $scope.content = bar;
    }

我正在尝试将这个变量从烧瓶传递到模板中的角度,如下所示:

<body ng-init="init({{ bar|tojson|safe }})" ng-controller="AppCtrl">

但最终DOM中的标签搞砸了

<body ng-init="init("foo")" ng-controller="AppCtrl">

这个问题是引号。浏览器无法正确解释它们并且变量未传递。

所以我的问题是如何解决这个问题?我不想为了获取数据而从角度控制器发出另一个 http 请求。

编辑。

<body ng-init="init('{{ bar }}')" ng-controller="AppCtrl">

好像解决了

【问题讨论】:

  • &lt;body ng-init="init('foo')" ng-controller="AppCtrl"&gt; 这应该没问题..对内部变量使用单引号..
  • tojson 将字符串用引号括起来。
  • @yotle 你的问题解决了吗?
  • @pankajparkar 是的,不完全是你告诉修复它的方式,但它已经解决了。你和 dirn 的回答给了我一个可行的想法。我编辑了这个问题,所以你可以看看我是怎么做的
  • 继续@pankajparkar

标签: javascript python angularjs flask


【解决方案1】:

当 DOM 属性已经以 " 开头时,只需使用 '

double inside double qoute 会破坏 DOM。

<body ng-init="init('{{ bar|tojson|safe }}')" ng-controller="AppCtrl">

将在 DOM 上呈现为

<body ng-init="init('foo')" ng-controller="AppCtrl">

希望这可以帮助你。谢谢。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-21
    • 2021-05-21
    • 2019-04-02
    • 1970-01-01
    • 1970-01-01
    • 2017-10-20
    • 1970-01-01
    相关资源
    最近更新 更多