當前位置: 首頁>>代碼示例>>TypeScript>>正文


TypeScript runtime.curry函數代碼示例

本文整理匯總了TypeScript中@glimmer/runtime.curry函數的典型用法代碼示例。如果您正苦於以下問題:TypeScript curry函數的具體用法?TypeScript curry怎麽用?TypeScript curry使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。


在下文中一共展示了curry函數的5個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。

示例1: renderHelper

  renderHelper = function renderHelper(
    vm: VM,
    args: Arguments
  ): VersionedPathReference<CurriedComponentDefinition | null> {
    let env = vm.env as Environment;
    let nameRef = args.positional.at(0);

    assert(
      `The first argument of {{render}} must be quoted, e.g. {{render "sidebar"}}.`,
      isConst(nameRef)
    );
    // tslint:disable-next-line:max-line-length
    assert(
      `The second argument of {{render}} must be a path, e.g. {{render "post" post}}.`,
      args.positional.length === 1 || !isConst(args.positional.at(1))
    );

    let templateName = nameRef.value() as string;

    // tslint:disable-next-line:max-line-length
    assert(
      `You used \`{{render '${templateName}'}}\`, but '${templateName}' can not be found as a template.`,
      env.owner.hasRegistration(`template:${templateName}`)
    );

    let template = env.owner.lookup<OwnedTemplate>(`template:${templateName}`);

    let controllerName: string;

    if (args.named.has('controller')) {
      let controllerNameRef = args.named.get('controller');

      // tslint:disable-next-line:max-line-length
      assert(
        `The controller argument for {{render}} must be quoted, e.g. {{render "sidebar" controller="foo"}}.`,
        isConst(controllerNameRef)
      );

      // TODO should be ensuring this to string here
      controllerName = controllerNameRef.value() as string;

      // tslint:disable-next-line:max-line-length
      assert(
        `The controller name you supplied '${controllerName}' did not resolve to a controller.`,
        env.owner.hasRegistration(`controller:${controllerName}`)
      );
    } else {
      controllerName = templateName;
    }

    if (args.positional.length === 1) {
      let def = new RenderDefinition(controllerName, template, SINGLETON_RENDER_MANAGER);
      return UnboundReference.create(curry(def));
    } else {
      let def = new RenderDefinition(controllerName, template, NON_SINGLETON_RENDER_MANAGER);
      let captured = args.capture();
      return UnboundReference.create(curry(def, captured));
    }
  };
開發者ID:Artmann,項目名稱:ember.js,代碼行數:59,代碼來源:render.ts

示例2: value

  value() {
    let { env, nameRef, modelRef } = this;
    let name = nameRef.value();

    if (typeof name === 'string') {
      if (this._lastName === name) {
        return this._lastDef;
      }

      assert(
        `You used \`{{mount '${name}'}}\`, but the engine '${name}' can not be found.`,
        env.owner.hasRegistration(`engine:${name}`)
      );

      if (!env.owner.hasRegistration(`engine:${name}`)) {
        return null;
      }

      this._lastName = name;
      this._lastDef = curry(new MountDefinition(name, modelRef));

      return this._lastDef;
    } else {
      assert(
        `Invalid engine name '${name}' specified, engine name must be either a string, null or undefined.`,
        name === null || name === undefined
      );
      this._lastDef = null;
      this._lastName = null;
      return null;
    }
  }
開發者ID:chundabear,項目名稱:ember.js,代碼行數:32,代碼來源:mount.ts

示例3: value

 value(): CurriedComponentDefinition | null {
   let state = stateFor(this.outletRef);
   if (validate(state, this.lastState)) {
     return this.definition;
   }
   this.lastState = state;
   let definition = null;
   if (state !== null) {
     definition = curry(new OutletComponentDefinition(state));
   }
   return (this.definition = definition);
 }
開發者ID:csantero,項目名稱:ember.js,代碼行數:12,代碼來源:outlet.ts

示例4: appendTo

 appendTo(view: Component, target: Simple.Element) {
   let definition = new RootComponentDefinition(view);
   this._appendDefinition(view, curry(definition), target);
 }
開發者ID:habdelra,項目名稱:ember.js,代碼行數:4,代碼來源:renderer.ts

示例5: appendOutletView

 appendOutletView(view: OutletView, target: Simple.Element) {
   let definition = createRootOutlet(view);
   this._appendDefinition(view, curry(definition), target);
 }
開發者ID:habdelra,項目名稱:ember.js,代碼行數:4,代碼來源:renderer.ts


注:本文中的@glimmer/runtime.curry函數示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。