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


TypeScript index.checkAndUpdateView函數代碼示例

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


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

示例1: it

      it('should support detaching and attaching component views for dirty checking', () => {
        class AComp {
          a: any;
        }

        const update = jasmine.createSpy('updater');

        const {view, rootNodes} = createAndGetRootNodes(compViewDef([
          elementDef(NodeFlags.None, null, null, 1, 'div'),
          directiveDef(
              NodeFlags.None, null, 0, AComp, [], null, null,
              () => compViewDef(
                  [
                    elementDef(NodeFlags.None, null, null, 0, 'span'),
                  ],
                  update)),
        ]));

        const compView = asProviderData(view, 1).componentView;

        checkAndUpdateView(view);
        update.calls.reset();

        compView.state = ViewState.ChecksDisabled;
        checkAndUpdateView(view);
        expect(update).not.toHaveBeenCalled();

        compView.state = ViewState.ChecksEnabled;
        checkAndUpdateView(view);
        expect(update).toHaveBeenCalled();
      });
開發者ID:doxiaodong,項目名稱:angular,代碼行數:31,代碼來源:component_view_spec.ts

示例2: it

          it(`should unwrap values with ${InlineDynamic[inlineDynamic]}`, () => {
            let bindingValue: any;
            const setterSpy = jasmine.createSpy('set');

            class FakeTextNode {
              set nodeValue(value: any) { setterSpy(value); }
            }

            spyOn(document, 'createTextNode').and.returnValue(new FakeTextNode());

            const {view, rootNodes} = createAndGetRootNodes(compViewDef(
                [
                  textDef(null, ['', '']),
                ],
                (view: ViewData) => {
                  setCurrentNode(view, 0);
                  checkNodeInlineOrDynamic(inlineDynamic, [bindingValue]);
                }));

            Object.defineProperty(rootNodes[0], 'nodeValue', {set: setterSpy});

            bindingValue = 'v1';
            checkAndUpdateView(view);
            expect(setterSpy).toHaveBeenCalledWith('v1');

            setterSpy.calls.reset();
            checkAndUpdateView(view);
            expect(setterSpy).not.toHaveBeenCalled();

            setterSpy.calls.reset();
            bindingValue = WrappedValue.wrap('v1');
            checkAndUpdateView(view);
            expect(setterSpy).toHaveBeenCalledWith('v1');
          });
開發者ID:doxiaodong,項目名稱:angular,代碼行數:34,代碼來源:text_spec.ts

示例3: it

      it('should call ngOnChanges with the changed values and the non minified names', () => {
        let changesLog: SimpleChange[] = [];
        let currValue = 'v1';

        class SomeService implements OnChanges {
          a: any;
          ngOnChanges(changes: {[name: string]: SimpleChange}) {
            changesLog.push(changes['nonMinifiedA']);
          }
        }

        const {view, rootNodes} = createAndGetRootNodes(compViewDef(
            [
              elementDef(NodeFlags.None, 1, 'span'),
              providerDef(NodeFlags.OnChanges, SomeService, [], {a: [0, 'nonMinifiedA']})
            ],
            (updater) => updater.checkInline(view, 1, currValue)));

        checkAndUpdateView(view);
        expect(changesLog).toEqual([new SimpleChange(undefined, 'v1', true)]);

        currValue = 'v2';
        changesLog = [];
        checkAndUpdateView(view);
        expect(changesLog).toEqual([new SimpleChange('v1', 'v2', false)]);
      });
開發者ID:JSMike,項目名稱:angular,代碼行數:26,代碼來源:provider_spec.ts

示例4: it

        it(`should update ${config.name}`, () => {
          const {view, rootNodes} = createAndGetRootNodes(compViewDef(
              [
                textDef(['0', '1', '2']),
              ],
              config.updater));

          checkAndUpdateView(view);

          const node = rootNodes[0];
          expect(getDOM().getText(rootNodes[0])).toBe('0a1b2');
        });
開發者ID:JSMike,項目名稱:angular,代碼行數:12,代碼來源:text_spec.ts

示例5: it

        it(`should update ${config.name}`, () => {
          const {view, rootNodes} = createAndGetRootNodes(compViewDef(
              [
                elementDef(
                    NodeFlags.None, 0, 'div', null,
                    [[BindingType.ElementClass, 'c1'], [BindingType.ElementClass, 'c2']]),
              ],
              config.updater));

          checkAndUpdateView(view);

          const el = rootNodes[0];
          expect(getDOM().hasClass(el, 'c1')).toBeTruthy();
          expect(getDOM().hasClass(el, 'c2')).toBeTruthy();
        });
開發者ID:JSMike,項目名稱:angular,代碼行數:15,代碼來源:element_spec.ts

示例6: it

    it('should dirty check embedded views', () => {
      let childValue = 'v1';
      const parentContext = new Object();
      const childContext = new Object();
      const updater = jasmine.createSpy('updater').and.callFake(
          (updater: NodeUpdater, view: ViewData) => updater.checkInline(view, 0, childValue));

      const {view: parentView, rootNodes} = createAndGetRootNodes(
          compViewDef([
            elementDef(NodeFlags.None, 1, 'div'),
            anchorDef(
                NodeFlags.HasEmbeddedViews, 0,
                embeddedViewDef(
                    [elementDef(
                        NodeFlags.None, 0, 'span', null,
                        [[BindingType.ElementAttribute, 'name', SecurityContext.NONE]])],
                    updater))
          ]),
          parentContext);

      const childView0 = createEmbeddedView(parentView, parentView.def.nodes[1], childContext);

      const rootEl = rootNodes[0];
      attachEmbeddedView(parentView.nodes[1], 0, childView0);

      checkAndUpdateView(parentView);

      expect(updater).toHaveBeenCalled();
      // component
      expect(updater.calls.mostRecent().args[2]).toBe(parentContext);
      // view context
      expect(updater.calls.mostRecent().args[3]).toBe(childContext);

      updater.calls.reset();
      checkNoChangesView(parentView);

      expect(updater).toHaveBeenCalled();
      // component
      expect(updater.calls.mostRecent().args[2]).toBe(parentContext);
      // view context
      expect(updater.calls.mostRecent().args[3]).toBe(childContext);

      childValue = 'v2';
      expect(() => checkNoChangesView(parentView))
          .toThrowError(
              `Expression has changed after it was checked. Previous value: 'v1'. Current value: 'v2'.`);
    });
開發者ID:JSMike,項目名稱:angular,代碼行數:47,代碼來源:embedded_view_spec.ts


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