【问题标题】:Mapping Angular input fields to Go struct with array using Restangular使用 Restangular 将 Angular 输入字段映射到带有数组的 Go 结构
【发布时间】:2014-08-16 20:53:52
【问题描述】:

我有一个 Go 结构:

type Foo struct {
    Name   string   `json:"fooName"`
    Things []string `json:"things"`
}

我有一个 Angular html 页面:

<input type="text" name="fooName" ng-model="foo.fooName"/>

<div ng-repeat="thing in things">
    <input ng-model="foo.things" type="text" name="thing-{{$index}}"/>
</div>

在我的 Angular 控制器中:

$scope.save= function(){
    Restangular
        .all('foos/new')
        .post($scope.foo).then(function(foo) {
            $location.path('/admin/fooManagement');
        });
};

其余的服务调用调用:

func CreateFoo(w http.ResponseWriter, r *http.Request) {
    defer r.Body.Close()
    var f Foo
    dec := json.NewDecoder(r.Body)
    dec.Decode(&f)
    log.Println("**** CreateFoo.... ")
    log.Println(&d)
}

Foo 的名字出现了,但我无法获得填充了输入值的“Things”数组。 我正在尝试弄清楚如何让后期服务调用来填充数组。

【问题讨论】:

  • 试试name="thing[{{$index}}]"
  • 这有帮助,但是我如何让多个输入重复工作,因为如果它们都具有相同的 ng-model 值“foo.things”,那么所有输入都将具有相同的值.. .我想要一些具有不同值的输入然后填充数组?

标签: angularjs go restangular


【解决方案1】:

我在 AngularJS 方面没有经验,但我对 Javascript 和 Go 非常了解:

<div ng-repeat="thing in things">
    <input type="text" ng-value="foo.things[$index]" name="thing[{{$index}}]"/>
</div>

假设foo.thingsthings 不是同一个数组并且都在范围内。

通过ng-value 指令,我们将此输入的值绑定到索引$index 处的foo.things' 元素。

name 属性遵循 Restangular 的(未记录的)数组表示法。

【讨论】:

  • 不要复制粘贴代码并说它不起作用。究竟是什么行不通?你试过什么?你看到了什么错误?
  • 您为什么认为我复制并粘贴了代码,而不是根据我的情况调整您的解决方案?没有明确的错误,数组“事物”没有被解决方案填充。我确实必须使用 ng-value="foo.things[{{$index}}],但这并没有解决问题。我不知道为什么它不起作用,就像我不知道为什么我的尝试一样不工作。所以,我仍在尝试找到 ng-value 和 name 等的正确组合,并且我尝试了太多组合来列出(所以我希望尝试其他一些变体,而且我我希望您介绍的 ng-value 是朝着正确方向迈出的一步:)
猜你喜欢
  • 2015-02-14
  • 2021-10-10
  • 2013-08-07
  • 1970-01-01
  • 2022-01-11
  • 2022-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多