首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角和节点的$http.get误差

角和节点的$http.get误差
EN

Stack Overflow用户
提问于 2018-01-09 18:44:08
回答 1查看 58关注 0票数 2

我的问题是$http.get指令-->在主页中没有$http.get,我得到了"random 46" (测试确定),但是如果插入$http.get,就会得到"random {{ number }}"

我怎么才能解决这个问题?

代码语言:javascript
复制
-server.js
-public
    -core.js
    -index.html

server.js (节点后端)

代码语言:javascript
复制
//restful api
app.get('/api/random', function(req, res) {
    res.json({
        "text" : "4"
    });
});

//app
app.get('*', function(req, res) {
    res.sendFile(__dirname + '/public/index.html');
});

core.js (角锋)

代码语言:javascript
复制
angular.module("myModule", [])
    .controller('myController', function($scope) {
        $scope.number = 46;

        $http.get('/api/random')
            .then(function successCallback(res) {
                $scope.number = res.data;
                console.log('success');
            }, function errorCallback() {
                console.log('Error');
        });
})

index.html

代码语言:javascript
复制
<html ng-app="myModule">

<head>
    <!-- META -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1"><!-- Optimize mobile viewport -->

    <title>Random number from sa-mp</title>

    <!-- SCROLLS -->
    <link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css"><!-- load bootstrap -->
    <style>
        html                    { overflow-y:scroll; }
        body                    { padding-top:50px; }
        #todo-list              { margin-bottom:30px; }
    </style>

    <!-- SPELLS -->
    <script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script><!-- load jquery -->
    <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.6.7/angular.min.js"></script><!-- load angular -->
    <script src="core.js"></script>

</head>

<!-- SET THE CONTROLLER AND GET ALL TODOS -->
<body ng-controller="myController">
    <div class="container">

        <!-- HEADER AND TODO COUNT -->
        <div class="jumbotron text-center">
            <h1>random <span class="label label-info">{{ number }}</span></h1>
        </div>

    </div>
</body>

</html>

编辑:我试过了

代码语言:javascript
复制
res.data
$scope.$apply();

代码语言:javascript
复制
res.data.text
$scope.$apply();

代码语言:javascript
复制
res.text
$scope.$apply();

但没起作用。

编辑2:解析的

我换了这个

代码语言:javascript
复制
.controller('myController', function($scope) {

使用

代码语言:javascript
复制
.controller('myController', function($scope, $http) {

并使用它来设置数据

代码语言:javascript
复制
$scope.number = res.data.text;
EN

回答 1

Stack Overflow用户

发布于 2018-01-09 18:52:11

尝试在回调的最后一行使用$scope.$apply()。

像这样:

代码语言:javascript
复制
$http.get('/api/random')
    .then(function successCallback(res) {
        $scope.number = res.data.text;
        $scope.$apply();
        console.log('success');
    }, function errorCallback() {
        console.log('Error');
});

如果有效的话。您可以在本文中更多地了解这一点:http://jimhoskins.com/2012/12/17/angularjs-and-apply.html

另外,您应该让res.data.text在您的html中具有正确的值。如:$scope.number = res.data.text

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48174757

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档