angular.js - Alamat dalam ui-sref dalam angularjs akan tidak konsisten dengan alamat dalam penyemak imbas
PHPz
PHPz 2017-05-15 16:56:06
0
2
573

Saya menggunakan ui-router dalam sudut dan ui-sref dalam teg, tetapi sekarang saya mendapati situasi yang kadangkala parameter dalam bar alamat penyemak imbas tidak konsisten dengan apa yang ditulis dalam teg, dan kadangkala masa baik dan buruk kali, saya tidak tahu di mana masalahnya.

Mengklik pada teg akan melompat ke paparan lain. Saya tidak tahu sama ada ini betul Sebab utama ialah fenomena ini akan muncul secara tiba-tiba dan tiada corak untuk diikuti Perubahan dalam bar alamat diubah oleh ui-sref, dan tiada apa-apa lagi yang digunakan untuk mengubah suai URL . .

Kod penghalaan

.state('chschool',{
            url: '/chschool',
            views: {
                '': {
                    templateUrl: 'templates/chschool.html' //总视图 内嵌了顶部和右侧学校部分
                },
                'indexheader@chschool':{
                    templateUrl: 'templates/indexheader.html' //顶部
                },
                'itemcontent':{
                    templateUrl: 'templates/schoolpart.html' //学校部分
                }
            }
        })
        .state('chschool.school',{      //修改学校 用来局部刷新 学校部分 这里根据路由参数
            url: '/school/{id}',
            views: {
                'itemcontent':{
                    templateUrl: 'templates/schoolpart.html'
                }
            }
        })
        .state('chdorm',{     //进入楼栋的页面 需要根据传入的学校参数来获取对应的楼栋,这里就碰到了传入的学校id会和schoolpart.html里面用ng-repeat循环出来的ui-sref中的参数不同
            url: '/chdorm/{id}',   
            views: {
                '': {
                    templateUrl: 'templates/chdorm.html'
                    }
            }
        })

paparan keseluruhan bahagian html

<section ui-view="indexheader"></section>
<p ng-show="hidep" class="yo-container">
    <p class="yo-xs-left">
        <p class="yo-area" >
            <p ng-include="'templates/citypart.html'"></p> //城市
        </p>
    </p>
    <p class="yo-xs-right">
        <p class="yo-school">
            <!--<p ng-include="'templates/schoolpart.html'"></p>-->
            <p ui-view="itemcontent"></p> //学校部分
        </p>
    </p>
</p>

citypart.html

<a ng-repeat="item in items"  ui-sref=".school({id:item.ID})" ui-sref-active="yo-active">
    {{item.cityname}}
</a>

schoolpart.html

<p class="yo-school-name" ng-controller="chschoolController">
    <p class="yo-team-join" ng-if="items.length==0">团队招募,期待你的加入</p>
    <p class="yo-school-list" ng-repeat="item in items  track by $index" ng-cloak>
        <a ui-sref="chdorm({id:item.ID})" ng-click="setItem($index)">{{item.schName}}</a>
    </p>
</p>
PHPz
PHPz

学习是最好的投资!

membalas semua(2)
刘奇

Sebaik-baiknya menyiarkan keadaan buruk itu
Di luar topik, js anda boleh dioptimumkan sedikit

.state('app.table.datatable', {
              url: '/datatable/:id',
              templateUrl: function (stateParams) {
                console.log(stateParams);
                return 'resources/tpl/test/table_static.html';
              },
              resolve: {
                loadMyCtrl: ['$ocLazyLoad', function ($ocLazyLoad) {
                  return $ocLazyLoad.load('resources/js/controllers/dataTableDemo.js');
                }]
              }
            })
仅有的幸福

Bolehkah anda menyiarkan tangkapan skrin ralat?
Jika anda perlu mencari, anda boleh mendengar acara penukaran laluan $stateChangeStart dalam konfigurasi dan melihat rekod perubahan laluan:

$rootScope.$on('$stateChangeStart',
    function(event, toState, toParams, fromState, fromParams){   
        console.info(fromState + "->" + toState, toParams, fromParams);     
    }
)
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan