0

アカウントのリストがあり、アカウントを詳細に表示するためのビュー リンクがあり、これがアカウント ルートです。表示リンクをクリックすると、ルーターを通過するときに (GUID) が更新されず、URL のみが更新されますが、コードには反映されていないようです。

ブラウザの更新を行うと、(GUID)がルーターに引き継がれます...何らかの理由で解決されません。

私は ember-data を使用していませんが、将来使用します。

「表示」リンクを含む「アカウント」テンプレートコードは次のとおりです。

{{#each accountdata in controller}}
<tr>
<td>{{accountdata.accountnumber}}</td>
<td>{{accountdata.accountname}}</td>
<td>{{accountdata.accounttypestatus}}</td>
<td>{{accountdata.accountuser}}</td>
<td>{{#linkTo account accountdata}}View{{/linkTo}}</td>
</tr>
{{/each}}

accountdata は、私の ID である「accountguid」のコンテキストです。

これが私のルーターです:

App.Router.map(function() {
    this.resource("accounts", { path: '/accounts' });
    this.resource("account",  { path: "/accounts/:accountguid" });
});

App.AccountsRoute = Ember.Route.extend({
    setupController: function(controller, model) {
        controller.set('searchfilter','ALL');
        controller.search();
    }
});

App.AccountRoute = Ember.Route.extend({
    setupController: function(controller, model) {        
        controller.show(controller);
    },
    model: function(params) {
        this.controllerFor('account').set('accountguid',params.accountguid);        
    },
    serialize: function(model) {
        return {accountguid: Em.get(model, 'accountguid')}
    }
});

私の controller.show は、コンテキストを送信してスクリプトを呼び出し、アカウントの詳細を表示する場所です。

したがって、毎回正しいaccountguidを実行してから、show(context)メソッドを呼び出すビューが必要です。

ありがとう

これは、100% 機能する私の古いルーター コードです。リンクをクリックすると :accountguid が解決され、ブラウザを更新すると同じことが起こりました。問題はありませんでした。すべてがうまくいきました。

//         //Accounts
//         accounts: Ember.Route.extend({
//             route: '/accounts',
//             index: Ember.Route.extend({
//                 route: '/',
//                 connectOutlets: function (router) {
//                     router.get('applicationController').connectOutlet('accounts');
//                     router.get('accountsController').set('searchfilter','ALL');
//                     router.get('accountsController').search();
//                 }
//             }),
//             view: Ember.Route.extend({
//                 route: '/:accountguid',

//                 connectOutlets: function (router, account) {
//                     router.get('applicationController').connectOutlet('account', account);
//                     router.get('accountController').show(account);                    

//                     //router.get('accountController').connectOutlet('eventloghistory','eventloghistory');                    
//                 }
//             })
//         }),
4

3 に答える 3

1

次のコードで問題を解決できました。ブラウザーを更新できるようになりました。リンクをクリックすると、現在使用されている :accountguid が show() メソッドに渡されます。

App.AccountRoute = Ember.Route.extend({
    model: function(params) {
        return {accountguid: params.accountguid};
    },
    setupController: function(controller, model) {        
        controller.show(model);
    },
    serialize: function(model) {
        return {accountguid: Em.get(model, 'accountguid')}
    }
});
于 2013-01-30T07:47:04.197 に答える
0

ルーターマップを次のように変更すると、機能するはずです

App.Router.map(function() {
  this.resource("accounts", function(){
    this.resource('account',{path:':account_id'});
  }); 
});
于 2013-01-30T06:27:52.443 に答える