Javascript 安格拉斯。使用ng repeat和ng开关渲染表

Javascript 安格拉斯。使用ng repeat和ng开关渲染表,javascript,angularjs,angularjs-ng-repeat,ng-switch,Javascript,Angularjs,Angularjs Ng Repeat,Ng Switch,我正在尝试使用angularjs指令呈现具有两列的表 <table> <tr ng-repeat="message in messages" > <td ng-switch-on="message.network" ng-switch when="twitter" ng-controller="TweetController"> <span> <input type="checkbox" nam

我正在尝试使用
angularjs
指令呈现具有两列的表

<table>
<tr ng-repeat="message in messages" >
    <td ng-switch-on="message.network" ng-switch when="twitter" ng-controller="TweetController">
        <span>
            <input type="checkbox" name="active" ng-checked="{{message.isPublished}}" data-id="{{message.socialId}}" ng-click="publishMessage($event)" />
        </span>
        <span>
            <img src="{{message.authorPicture}}" />
        </span>
        <span>{{message.createdAt}}</span>
        <span>{{message.network}}</span>
        <span>{{message.text}}</span>
    </td>
    <td ng-switch-on="message.network" ng-switch when="facebook" ng-controller="FacebookController">
        <span>
            <input type="checkbox" name="active" ng-checked="{{message.isPublished}}" data-id="{{message.socialId}}" data-createdAt="{{message.createdAt}}" ng-click="publishMessage($event)" />
        </span>
        <span>
            <img src="{{message.authorPicture}}" />
        </span>
        <span>{{message.createdAt}}</span>
        <span>{{message.network}}</span>
        <span>{{message.text}}</span>
    </td>
</tr>
</table>

{{message.createdAt}}
{{message.network}
{{message.text}
{{message.createdAt}}
{{message.network}
{{message.text}

应该有两个栏——第一栏应该是twitter消息,第二栏应该是facebook帖子。但在我的例子中,相同的消息在两列中呈现(如下所示)。我做错了什么?

要保持简单,只需重新构造模型:

$scope.messages = [
    [
        {
            "network": "twitter",
            ...
        },
        {
            "network": "facebook",
            ...
        }
    ],
    [
        {
            "network": "twitter",
            ...
        },
        {
            "network": "facebook",
            ...
        }
    ]       
]
HTML:

<table>
    <tr ng-repeat="message in messages" >
        <td ng-repeat="msg in message">
            <div ng-if="msg.network == 'twitter'">
                <div ng-controller="TweetController">
                    ...
                    <span>{{msg.createdAt}}</span>
                    <span>{{msg.network}}</span>
                    <span>{{msg.text}}</span>
                </div>
            </div>
            <div ng-if="msg.network == 'facebook'">
                <div ng-controller="FacebookController">
                    ...
                    <span>{{msg.createdAt}}</span>
                    <span>{{msg.network}}</span>
                    <span>{{msg.text}}</span>
                </div>
            </div>
        </td>       
    </tr>
</table>

...
{{msg.createdAt}}
{{msg.network}
{{msg.text}
...
{{msg.createdAt}}
{{msg.network}
{{msg.text}

我想您不需要这里的
ngSwitch
。为了简单起见,您可以重新构造
$scope.messages
,使其每个项都包含来自两个网络的数据。您可以共享
$scope.messages
?当然可以)的内容吗?您可以发布
messages
objectMaxim,pastebin.com/ssmiy6kl但对于facebbok,我使用facebook控制器,用于twitter-TwitterController。我如何决定在什么情况下使用twitter控制器,在什么情况下使用facebook控制器?非常感谢!这真令人高兴!:-)@斯维特拉伊万诺娃没问题。除非您对这两个视图执行的操作有很大的不同,否则您应该使用一个控制器
messagescoontroller
。只是一个建议。看看什么最适合你的需要:)我遇到了新问题:-)现在消息在1列中重复)如果问题的根源是ng(只要确保问题是否在
$scope.messages
本身。