AngularJS语法 - John Papa的Bindable up-top语法是不明确的

时间:2014-11-20 20:09:02

标签: javascript angularjs

我正在阅读John Papa这个优秀的造型指南。在列表中有一点点,他谈到了' Bindable Members Up Top'。

引用他的例子,他说避免这个

/* avoid */
function Sessions() {
    var vm = this;

    vm.gotoSession = function() {
      /* ... */
    };
    vm.refresh = function() {
      /* ... */
    };
    vm.search = function() {
      /* ... */
    };
    vm.sessions = [];
    vm.title = 'Sessions';

而是使用此

/* recommended */
function Sessions() {
    var vm = this;

    vm.gotoSession = gotoSession;
    vm.refresh = refresh;
    vm.search = search;
    vm.sessions = [];
    vm.title = 'Sessions';

    ////////////

    function gotoSession() {
      /* */
    }

    function refresh() {
      /* */
    }

    function search() {
      /* */
    }

虽然这很干净,但它会带来一个问题。如果你的函数有参数怎么办?假设在上面的示例中,函数search获得了一个查询:function search(str)。为了能够做到这一点,他推荐的是:

function Sessions() {
    var vm = this;

    vm.search = search;

    //////////

    function search(str) {

    }

问题是当你查看顶部vm.search = search时,你不确定传递给函数的是什么,你需要向下滚动到函数function search(str)才能找到答案。

有人可以为我扩展吗?

修改

我创建了an issue on the page,要求John自己回应这个问题。

1 个答案:

答案 0 :(得分:0)

您的IDE应该能够处理它,或者您可以使用TypeScript's接口来保持类本身的“顶级”和干净的实现。

我建议使用Visual Studio(如果你也做c#/ asp.net的话)或者不推荐使用Web Storm。 Web Storm非常便宜,是网络工作的优秀编辑器。 Sublime也可能有一些插件。