Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

コントローラのイベントハンドラ記述で、'{this.xxx}'のような記述でコントローラの持つものにバインドできるようにする #347

Closed
fukudayasuo opened this issue Jun 11, 2014 · 1 comment
Assignees
Labels
Milestone

Comments

@fukudayasuo
Copy link

@fukudayasuo fukudayasuo commented Jun 11, 2014

コントローラのイベントハンドラ記述で、'{this.xxx}'のような記述でコントローラの持つものにバインドできるようにする。

var controlelr = {
  __name: 'a',
  _myDataModel: null,
  __init: function(context){
    // コントローラ化時のパラメータで受け取ったデータモデルを取得
    _myDataModel = context.args.dataModel;
  }
  '{this._myDataModel} itemsChange': function(){
    // データモデルのitemsChangeイベントを拾うイベントハンドラを記述
  }
};

なお、

v1.1.11現在の動作だと、'{this.xxx} myevent'のようにthis.で始まるグローバルセレクタでイベントハンドラを指定した場合は、"this"というタグの"xxx"クラスと言うようにセレクタで解釈される。

また、'{this} myevent'のようにthisにバインドしようとすると、以下のエラーを投げている。

// code: 6012
// コントローラ"XXX"でセレクタ名にthisが指定されています。コントローラをバインドした要素自身を指定したい時はrootElementを指定してください。
@fukudayasuo fukudayasuo self-assigned this Jun 12, 2014
fukudayasuo pushed a commit to hifive-labs/hifivemain that referenced this issue Jun 12, 2014
Controller.viewを@namespaceではなく@Classとして記述。
ViewクラスからController.viewにリンク
Controller.viewのJSDocにViewとは異なる点を記述。
getGlobalSelectorTargetのJSDocに"this."についての説明を追記。
fukudayasuo pushed a commit to hifive-labs/hifivemain that referenced this issue Jun 12, 2014
@simdy simdy added the enhancement label Jun 16, 2014
@simdy simdy added this to the v1.1.12 milestone Jun 16, 2014
@simdy
Copy link
Member

@simdy simdy commented Jun 19, 2014

こちらについては実装済みなのでクローズ。
動作については、 #353 についても留意のこと。

@simdy simdy closed this Jun 19, 2014
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
2 participants
You can’t perform that action at this time.