1

期望的行为是我想<a>根据从后端返回的数据动态生成一些导航条目(一些 s )。因此,我将 herf 和每个文本绑定到<a>数组元素的字段model。后端调用返回后,我将返回数据分配给以data更新modelhtml。modeldata共享相同的结构,但这对我不起作用。

数组看起来像

     $scope.links = {
                    'cancelLink': 'http://cancelLink',
                    'Steps': [{
                      'label': "Step1",
                      'link': "http://1"
                    }, {
                      'label': "Step2",
                      'link': "http://2"
                    }, {
                      'label': "Step3",
                      'link': "http://3",
                      'active': true
                    }, {
                      'label': "Review",
                      'link': "http://review"
                    }]
                  };

更新逻辑

$scope.loadLinks = function () {
                    $http({
                      method: 'GET',
                      url: '/links'
                    }).success(function(data) {
                        $scope.links = data;
                    });
                  };

HTML

<li><a class="text clickable" ng-href={{links.Steps[0].link}}>{{links.Steps[0].label}}</a></li>
<li><a class="text clickable" ng-href={{links.Steps[1].link}}>{{links.Steps[1].label}}</a></li>
...

上面的代码只是默默地失败了,控制台没有任何输出。我尝试将字段从分配datelink( links.Steps[0].link == data.Steps[0].link) 并且有效。所以我想知道是不支持这种批量更新还是什么?另外我想知道我应该如何解决这种 ng-directive 问题?

4

2 回答 2

1

我将您的代码放入http://plnkr.co/edit/c5AOjyuLhBGqqugT4VU4?p=preview的 Plnkr 中。

一个小的风格变化(尽管它不会以任何一种方式中断),您应该将 ng-href 值用引号括起来:

ng-href={{links.Steps[0].link}}

应该

ng-href="{{links.Steps[0].link}}"

否则,正如您在 Plnkr 中看到的,它工作正常。我猜你的问题是 $http 调用没有像你期望的那样加载 JSON,你的控制器中的 $scope 不能被你的 HTML 访问,或者在加载函数中设置的 $scope 不一样您正在访问的范围。

如果您发布更完整的代码集,我们可以看到它在哪里崩溃。

于 2014-10-31T00:14:31.583 回答
0

绑定第一次运行时,它将对象链接绑定到您的模板

因此,如果您对同一个对象进行更改,它就会被反映。但是,当您使用loadLinks函数获取链接时,您会创建一个新对象(具有相同名称)。未对绑定的原始对象进行任何更改。

这是正常的预期行为。

我做的一种方法是清空链接数组并用来自服务器的新数据填充它。

简单的方法是

links.length = 0 //empties the array
//now append to links the data from server
Array.prototype.push.apply(links,data);

或者您可以使用任何糖库来合并实际修改原始数组的数组

于 2014-10-31T00:23:12.773 回答