คอนโทรลเลอร์ไม่เริ่มทำงานเมื่อใช้ $location.path หรือ $state.go

คอนโทรลเลอร์ไม่ได้เริ่มต้นในหน้าเดียวกันเมื่อใช้ $state.go หรือ $location.href

ฉันกำลังใช้เมนูด้านข้างในไอออนิกของฉันเพื่อส่งรหัสหมวดหมู่ของแอปไปยังหน้าผลิตภัณฑ์ที่ใช้บริการ แต่ข้อมูลไม่ได้รับการอัปเดตที่สอดคล้องกับรหัสหมวดหมู่ปัจจุบัน เมื่อฉันคลิก aaa ฉันถูกเปลี่ยนเส้นทางไปยังหน้าผลิตภัณฑ์สำเร็จและมีการแจ้งเตือน 1. สร้างเมนูด้านข้างอีกครั้งเมื่อฉันคลิก 'bbb' ฉันไม่ได้รับการแจ้งเตือน นอกจากนี้ถ้าฉันเลือก bbb ในตอนแรก 2 จะได้รับการแจ้งเตือนและในทางกลับกัน

เทมเพลตเมนูด้านข้าง

<ion-item  nav-clear menu-close ng-click="allproductpage(1)">aaa</ion-item>
<ion-item  nav-clear menu-close ng-click="allproductpage(2)">bbb</ion-item>

ตัวควบคุมเมนูด้านข้าง

$scope.allproductpage= function(a){
angular.extend(inpsf.inps, {act_cat : a})  // inpsf is service
$location.path('/app/allproducts')
}

หน้าผลิตภัณฑ์

.controller('AllproductsCtrl', function($scope,inpsf)
{
alert(inpsf.inps.act_cat)   
})

ป.ล. ฉันใช้ $ionicConfigProvider.views.maxCache(0); ใน .config ของฉัน


person sam    schedule 20.02.2017    source แหล่งที่มา
comment
อาจซ้ำกันของ เราเตอร์ AngularJS UI - เปลี่ยน url โดยไม่ต้องโหลดสถานะซ้ำ   -  person Rohit Jindal    schedule 20.02.2017


คำตอบ (2)


คุณควรส่งพารามิเตอร์ภายในการประกาศเส้นทางสถานะและฟัง $routeChangeSuccess หากใช้ $location หรือ $stateChangeSuccess หากใช้ $state เนื่องจากคุณอยู่ที่ '/app/allproducts' อยู่แล้วเมื่อคุณคลิกรายการเมนูที่สอง และตัวควบคุมนั้น "อยู่ในหน้า" อยู่แล้ว ลองบางอย่างเช่น:

.controller('AllproductsCtrl', function($scope,inpsf)
{
    $scope.$on('$routeChangeSuccess', function() {
        alert(inpsf.inps.act_cat)  
    })
})


//where you config your states..
$stateProvider.state('/app/allproducts/:cat', {

ตัวควบคุมเมนูด้านข้าง

$scope.allproductpage= function(a){
    angular.extend(inpsf.inps, {act_cat : a})  // inpsf is service
    $location.path('/app/allproducts').search({act_cat: a})
}
person Daniele    schedule 20.02.2017

ลองใช้วิธีดังต่อไปนี้

$ionicHistory.clearCache().then(function(){ $state.go('yourpath') })
person coder    schedule 20.02.2017