模板指令中没有选取变量

时间:2014-09-24 12:46:36

标签: angularjs angularjs-directive

我有一个使用此模板的指令:

<ul class="pagination pagination-sm">
<pre>{{pageurl}}</pre>
<pre>{{prevp}}</pre>
<pre>{{nextp}}</pre>
<pre>{{last}}</pre>
<pre>{{limit}}</pre>
<li ng-class="(start == 0) ? 'ng-hide' : ''"><a ng-click="getNewData('{{pageurl}}?start=0&limit={{limit}}')"><span class="glyphicon glyphicon-arrow-left"></span></a></li>
<li ng-class="(start == 0) ? 'ng-hide' : ''"><a ng-click="getNewData('{{ pageurl }}?start={{ prevp }}&limit={{ limit }}')">пред.</a></li>
<li ng-repeat="cou in count" ng-class="(start == cou.num) ? 'active' : '' || ((cou.num - (4 * limit)) > start) ? 'ng-hide' : '' || ((cou.num + (4 * limit)) < start) ? 'ng-hide' : ''">
    <a ng-click="getNewData('{{ pageurl }}?start={{ cou.num }}&limit={{ limit }}')">{{ ($index + 1) }} <span class="sr-only">(current)</span></a>
</li>
<li ng-class="(start == count[count.length - 1].num) ? 'ng-hide' : ''"><a ng-click="getNewData('{{ pageurl }}?start={{ nextp }}&limit={{ limit }}')">след.</a></li>
<li ng-class="(start == count[count.length - 1].num) ? 'ng-hide' : ''"><a ng-click="getNewData('{{ pageurl }}?start={{ last }}&limit={{ limit }}')"><span class="glyphicon glyphicon-arrow-right"></span></a></li>

麻烦的是这段代码工作

<pre>{{pageurl}}</pre>
    <pre>{{prevp}}</pre>
    <pre>{{nextp}}</pre>
    <pre>{{last}}</pre>
    <pre>{{limit}}</pre>

这也是(变量处于循环中)

<li ng-repeat="cou in count" ng-class="(start == cou.num) ? 'active' : '' || ((cou.num - (4 * limit)) > start) ? 'ng-hide' : '' || ((cou.num + (4 * limit)) < start) ? 'ng-hide' : ''">
<a ng-click="getNewData('{{ pageurl }}?start={{ cou.num }}&limit={{ limit }}')">{{ ($index + 1) }} <span class="sr-only">(current)</span></a>

但是这里不行:(变量没有被......为什么?我很困惑!

    <li ng-class="(start == 0) ? 'ng-hide' : ''"><a ng-click="getNewData('{{pageurl}}?start=0&limit={{limit}}')"><span class="glyphicon glyphicon-arrow-left"></span></a></li>
<li ng-class="(start == 0) ? 'ng-hide' : ''"><a ng-click="getNewData('{{ pageurl }}?start={{ prevp }}&limit={{ limit }}')">пред.</a></li>

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

  1. 由于您使用的是pagination-sm类,我假设您使用了Twitter引导程序。那么ng-class应该是不同的。

    <li ng-class="{'hidden': start == 0}">
    

    但更好的是

    <li ng-hide="start == 0">
    
  2. 我相信ng-click你放了表达式。

    <a ng-click="getNewData(pageurl + '?start=' + cou.num + '&limit=' + limit)">
    

    但更好的是

    <a ng-click="getNewData(cou.num)">
    

    您可以在getNewData内构建网址,因为pageurl

    中有limit$scope
    $scope.getNewData = function(n) {
       var URL = $scope.pageurl + '?start=' + n + '&limit=' + $scope.limit;
    }
    

    这样您就可以将逻辑移动到控制器上。

  3. 试试这里测试

    http://jsfiddle.net/Serhioromano/ods4k4gk/3/