`this` in callback points to wrong object

前端 未结 3 1700
长情又很酷
长情又很酷 2021-01-25 08:08

I have this viewModel:

import app = require(\"durandal/app\");
import appViewModel = require(\"appViewModel\");
import dataService = require(\"dataService\");

c         


        
3条回答
  •  时光说笑
    2021-01-25 08:34

    While you have your answer, the way I prefer is a bit different:

    convert function/method definition - into "property referencing function"

    // instead of class method
    // public activateView(view) {
    
    // use the "property"
    public activateView = (view) => {
        this.activeScreen(view);
    }
    

    That will reduce the need to pass explicit params like this

    .then((view) => this.activateView(view))
    

    because this will work again:

    .then(this.activateView)
    

提交回复
热议问题