如何将我的请求数据存入我的$ scope

时间:2016-11-21 17:13:38

标签: javascript angularjs express asynchronous passport.js

我目前真正坚持这个话题。

我想将我从Express检索的响应数据附加到我的angular $ scope,然后将用户重定向到他们的个人资料页面。

我的控制器功能如下所示:

MF_MT_AUDIO_NUM_CHANNELS

一旦我尝试登录,我就会获得记录的数据,然后根据需要重定向。但我的ng-repeat指令不会更新。

我记录的数据的JSON输出:

$scope.login = function($event){
    $event.stopPropagation();
    $http({
      method: 'POST',
      url: '/login',
      data: {
          email: $scope.email,
          password: $scope.password
      }
  }).success(function(data){
      console.log(data.events)
      $scope.events = data.events
      $location.path('/profile');
  }).error(function(err){
      console.log(err)
  })

ng-repeat部分:

[{
"type":"fussball",
"distance":"1",
"date":"Morgen",
"time":"10:30",
"maxAttendees":10,
"attendees:[
1345455466,
323232324,
454554534343,
898493839489,
892839283928,
283293283983]}

我实际上对asynch / synch编程并不熟悉所以我希望有人可以给我一个提示;)。

提前致谢!

2 个答案:

答案 0 :(得分:0)

最好的方法是使用工厂。我准备写它,但我在另一篇文章中发现了另一个问题。

如果您喜欢评论,请在原始海报上投票。

https://stackoverflow.com/a/21855302/1549291

编辑:为实施添加了plunker链接: https://plnkr.co/edit/EimStRS1yMPbiU6PWKJN

bx+si+1

答案 1 :(得分:0)

您需要告诉角度事件列表中存在异步更新

package main

import (
    "encoding/json"
    "fmt"
    "log"
)

var a = `{  
"sometext":[  
  {  
     "sha":"1234567",
     "message":"hello world",
     "author":"varung",
     "timestamp":1479445228
  }
]
}`

type Root struct {
    Text []*Object `json:"sometext"`
}

type Object struct {
    Sha       string `json:"sha"`
    Message   string `json:"message"`
    Author    string `json:"author"`
    Timestamp int    `json:"timestamp"`
}

func main() {
    var j Root
    err := json.Unmarshal([]byte(a), &j)
    if err != nil {
        log.Fatalf("error parsing JSON: %s\n", err.Error())
    }
    fmt.Printf("%+v\n", j.Text[0].Sha)
}

也许您想阅读:

When to use $scope.$apply()

并观看:

Difference between $apply and $digest