使用ng-if访问对象属性

时间:2014-02-21 18:41:49

标签: javascript html angularjs

我正在尝试使用ng-if禁用或启用按钮。

第一个ng-if按预期工作,如果页面不大于一个,它会禁用该按钮。

第二个ng-if有效,因为它不会禁用该按钮,但单击该按钮不会增加变量page,或者如果它增加,则更改不会反映在文本中。

点击它时我没有收到任何错误。

是否与s.pages.length比较有关?

<div ng-repeat="s in scripts track by $index">
    <div ng-click=''>
        <b>Name</b>: <input type="text" ng-model="scriptNames[$index]"  size="10" /> <input type="button" value='Rename' ng-click='renameScript($index)'/>
        </br>
        <b>Preview</b>: <textarea ck-editor class="ckeditor" ng-model="s.pages[page].versions[0]" value="{{s.pages[page].versions[0]}}" ></textarea>
        </br>
        <span ng-if="page > 1">
        <input type="button" value='previous page' ng-click='page = page - 1'/>
        </span>
        {{page+1}}
        <span ng-if="page < s.pages.length">
            <input type="button" value='next page' ng-click='page = page + 1'/>
        </span>
        </br>
        <input type="button" value='Save Edits' ng-click='updateScript($index)'/>
        </br>
        </br>
        <input type="button" value='Delete Script' ng-click='deleteScript($index)'/>
    </div>
</div>

这是另一个发生意外情况的例子。我能够增加页面,但我无法减少页面。

以下代码紧跟上面的代码。他们都访问相同的变量。我不确定这是否会导致问题。

<textarea ck-editor class="ckeditor" ng-model="script[page]" value="{{script[page]}}"  rows='10' cols='80'></textarea>
<span ng-if="page+1 > 1">
        <input type="button" value='previous page' ng-click='page = page - 1'/>
</span>
{{page+1}}
<input type="button" value='next page' ng-click='page = page + 1'/>
</br>
<input type="button" value='Submit script' ng-click='submitScript()'/>

1 个答案:

答案 0 :(得分:0)

ngIf创建另一个范围。因此,您必须访问page上的$parent媒体资源...

<input type="button" value='previous page' ng-click='$parent.page = $parent.page - 1'/>

Jsbin ...... http://jsbin.com/beguhoxo/1/edit?html,js,output