2016年8月1日 星期一

[AngularJS] :sn 做啥用

做合約作業時候回頭看客戶作業,看到 :sn 腦袋又給他卡住一下。

在CustomerInfo.js (客戶列表) 裡
//編輯
function edit(item) {
     $state.go('customer.form', { sn: item.CUSTOMER_SN });
}

在CustomerForm.js裡
//視窗動作
vm.form = Form[!$stateParams.sn ? 0 : 1];
//客戶資料
if ($stateParams.sn) {
    var option = { condition: { CUSTOMER_SN: $stateParams.sn }, plan: 'Contact' };
    AjaxService.Get('Customer', option).then(function (data) {
        vm.item = data;
    });
}

在Config.json裡面
[
    {
        "system": "CRMS",
        "name": "customer",
        "url": "/crms/customer",
        "path": "Basic/",
        "pages": [
            {
                "name": "list",
                "fileName": "CustomerInfo",
                "controller": "CustomerCtrl",
                "controllerAs": "Customer"
            },
            {
                "name": "form",
                "url": "/form/:sn",
                "fileName": "CustomerForm",
                "controller": "CustomerFormCtrl",
                "controllerAs": "Customer"
            }
        ]
    }
]

到處都有sn,到底 sn拿來幹嘛?
那這個問題,一開始我腦袋卡的方向就是不知為何的拘泥於sn跟Form的關係,但看完,窩操, 沒啥關係,有關係的是只是sn帶的值。

想單純一點,:sn就是像C#的QueryString,專門來帶值,那在CustomerInfo.js裡面,就是丟值給sn去帶;到CustomerForm.js就是下一個判斷式判斷 $stateParams.sn 有沒有值($stateParams會儲存url),有值就帶入給Form[1]以開啟編輯頁面,然後透過AjaxService取得對應的客戶資料,顯示在編輯頁面上以做編輯。

沒有留言:

張貼留言