javascript - AngularJS:页面加载时使用服务器数据更改输入值

标签 javascript python angularjs flask

很抱歉,如果有人问过这个问题,但我确实没有找到完全适用于我的问题的内容。

虽然我知道 AngularJS 表单值必须从 Controller 加载,并且我可以使用 AngularJS 创建路由和 RESTful 资源,但我使用 Python 和 Flask 获取页面和数据,但 AngularJS 将数据发布到服务器.问题是,当我将“ng-model”放入文本输入中时,来自服务器的值将被忽略,如下所示:

<input type="text" ng-model="first_name" value={{user.first_name}}>

被解释为:

<input type="text" ng-model="first_name" value="John" class="ng-pristine ng-valid">

但是看不到值,就好像没有“值”属性一样。

鉴于这种情况,我尝试使用指令,但我没有意识到如何获取此服务器数据并将其与另一个范围共享。

我想要的是简单地在 ng-model 输入中加载一个包含服务器数据的页面,然后通过 Controller 方法访问它(“占位符”在这里没有用)。

我发送的页面是这样的:

class ShowUser(MethodView):
    def get(self):
        s = Session(request)
        if s.is_logged():
            user = dict({'username': s.user.username, 'first_name': s.user.first_name, 'last_name': s.user.last_name,
                         'email': s.user.email, 'logged': True})
            return render_template('users/show-user.html', user=user)
        else:
            user = dict({'username': 'null', 'logged': False})
            return render_template('index.html', user=user)

这是我试图访问的“render_template”中的“user”变量。

最佳答案

如果你不去服务器,你可以写一个angular .value()在页面中(我假设 {{ }} 来自您的服务器端模板,而不是 Angular 的):

<script>
angular.module('app').value('User', {{user}});
</script>

更好的例子,在 EJS 中,你可以:

<script>
angular.module('app').value('User', <%= JSON.stringify(user) %>);
</script>

这必须放在 .js 之后的任何地方包含您的初始 angular.module('app', [...])

然后注入(inject)User在你的 Controller 和范围内;

angular.module('app')
  .controller('AppController', ['$scope', 'User',
    function($scope, User) {
      $scope.user = User;
    }
    ]);

最后,在您的 HTML 中:

<input type="text" ng-model="user.first_name" />

关于javascript - AngularJS:页面加载时使用服务器数据更改输入值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24870896/

相关文章:

javascript - 调用javascript函数的正确方法

javascript - D3 动画(过渡)不适用于 Angular 应用程序

javascript - 在 onclick 函数中使用 "this"

python - 有没有办法在其以前的版本中使用 Python 3.9 类型提示?

javascript - 如何在单页应用程序中实现 gmail 撰写窗口概念?

javascript - 无法在 JavaScript 中删除数组元素

python / NumPy : Efficiently store non-sparse large symmetric arrays?

python - Pyinstaller Tkinter hiddenimports = [sysconfig._get_sysconfigdata_name()] 错误

angularjs - Access-Control-Allow-Headers 不允许请求 header 字段 x-access-token

javascript - 我可以将 ng-model 设置为两个值吗?