ngIf inside ng当使用字符串<table> </table>定义控制器时,重复不在内部工作

时间:2015-01-08 18:15:40

标签: angularjs angularjs-ng-repeat

我在模板中有一个ng-if,并且ng-if不起作用,即使我将其更改为

ng-if="false"

我可以通过添加

来实现它
ng-controller="TemplateController"

到父div,但是当我这样做时,我的控制器无法接收已解析的参数:

resolve: {
    myVar: function() {
        return "hello world";
    }
}

Unknown provider: myVarProvider <- myVar

如果我删除ng-controller,并添加

controller: "TemplateController"

在我的决心:之后,然后myVar成功通过,但ng-if不再有效

我的HTML:

<table>
    <div ng-repeat=“row in rows"><tr>
        <span ng-if=“row.active==1">
            <td>{{row.data}}</td>
            <td></td>
            <td>{{ row.date | date:"MM/dd/yyyy"}}</td>
            <td>
                <a href=“stuff”>click me</a>
            </td>
        </span>
        <span ng-if=“row.active > 1">
            <td>{{row.otherData}}</td>
            <td>{{row.str}}</td>
            <td>{{ row.date | date:"MM/dd/yyyy"}}</td>
            <td>
                <a href=“stuff”>click me instead</a>
            </td>
        </span></tr>
    </div>
</table>

现在,我得到了一大堆空白单元格,两个'点击我'链接。

如果我删除标签,它可以工作,但它不在表格中

此外,不仅ng-i​​f不起作用,而且我在{{}}内引用的任何变量都被替换为空格(但如果删除它们也可以工作)

jsFiddle:http://jsfiddle.net/Mh2UH/1/

1 个答案:

答案 0 :(得分:-2)

避免此问题的黄金法则是

角度绑定中始终有一个点

ng-if="false"

没有点。因此,值false被传递到ng-if的范围但不能更新,因为false是一个不可变的布尔值。

正确的方法,

ng-if=status.enabled

其中status是一个对象。