จะแสดงสถานะ ui-route เชิงมุมภายในสถานะอื่นได้อย่างไร

ฉันมีสถานะเส้นทาง UI สองสถานะ S1 และ S2 S1 เป็นสถานะการสืบค้น โดยมีแบบฟอร์มที่ใช้สืบค้นข้อมูลบางอย่าง S2 คือสถานะผลลัพธ์ที่ฉันแสดงข้อมูลที่ฉันได้รับจากสถานะ S1

ตอนนี้ฉันต้องการระบุ S1 (สถานะแบบสอบถาม) ภายในสถานะผลลัพธ์ S2 เพื่อให้ผู้ใช้สามารถแก้ไขแบบสอบถามในสถานะ S2 ได้

ฉันจะเข้าถึงเทมเพลตและตัวควบคุม S1 ในสถานะ S2 ได้อย่างไร

รหัส:

$stateProvider
        .state('form', {
            url: '/form',
            templateUrl: '/modules/form',
            controller: 'formController'
        })
        .state('result', {
            url: '/result',
            templateUrl: '/modules/result',
            controller: 'resultController'
        })

ฉันต้องการใช้สถานะ form ภายในสถานะ result

หมายเหตุ: ฉันเป็นคนใหม่ในเชิงมุม โปรดให้ข้อเสนอแนะสำหรับฉากประเภทดังกล่าวด้วย


person Anshul    schedule 15.06.2015    source แหล่งที่มา


คำตอบ (1)


นี่เป็นคำตอบที่เป็นอัตนัย แต่เมื่อใช้ ui-router ค่อนข้างมาก ฉันคิดว่ามันดีสำหรับการจัดการเส้นทางต่างๆ ของคุณ แต่ถ้าคุณต้องการชิ้นส่วนที่นำกลับมาใช้ใหม่แบบโมดูลาร์เพื่อใช้ในหน้าต่างๆ ฉันอ้างว่าคุณจะง่ายขึ้นมาก เวลาเพียงใช้คำสั่งดั้งเดิมของเชิงมุมแทน

app.directive('someform', function() {
  return {
    restrict: 'E',
    templateUrl: 'form.html',
    controller : 'formController'
  };
});

http://plnkr.co/edit/JynPLQQgE1UqVMBOLvdS?p=preview เสียงดังลั่นเพื่อความสมบูรณ์ (คุณอาจต้องการทราบว่า ui-router นั้นไม่จำเป็นเลยในตัวอย่างนี้)

สำหรับการสื่อสารระหว่างคอนโทรลเลอร์ วิธีหนึ่งคือใช้ $broadcast, $emit และ $on แต่ฉันชอบบริการที่เก็บผลลัพธ์ของคุณมากกว่า และใส่เข้าไปในตัวควบคุมทั้งสองเพื่อให้เข้าถึงได้ง่าย

app.factory('Results', function(){
  results = [{value:'aaaa'},{value:'bbb'}, {value:'cccc'}];
  return {
    get : function(){
      return results;
    },
    add : function(value){
      results.push(value);
    }
  }
})

http://plnkr.co/edit/IC6OysrLw64lG8ed1sfL?p=preview

person ippi    schedule 16.06.2015