当前位置: 首页>>代码示例>>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;未经允许,请勿转载。