当前位置: 首页>>代码示例>>TypeScript>>正文


TypeScript history.History类代码示例

本文整理汇总了TypeScript中history.History的典型用法代码示例。如果您正苦于以下问题:TypeScript History类的具体用法?TypeScript History怎么用?TypeScript History使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了History类的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。

示例1: push

  push(path: string | LocationDescriptorObject, state?: any) {
    // Do not navigate if the path object matches
    const nextPath = typeof path === 'string' ? path : createPath(path);
    if (nextPath === createPath(this.history.location)) return;

    if (Date.now() - this.lastPush > this.wait) {
      // @ts-ignore TypeScript doesn't recognize our push as a proxy for History.push's
      // overloaded signature, and it's really hard to fix this properly
      this.history.push(path, state);
    } else {
      try {
        // @ts-ignore
        this.history.replace(path, state);
      } catch (e) {
        // Ignore Safari's history.replaceState() rate limit error.
        // See https://github.com/nusmodifications/nusmods/issues/763
        if (
          e.name === 'SecurityError' &&
          e.message.includes('Attempt to use history.replaceState()')
        ) {
          return;
        }

        // Continue throwing all other errors
        throw e;
      }
    }

    this.lastPush = Date.now();
  }
开发者ID:nusmodifications,项目名称:nusmods,代码行数:30,代码来源:HistoryDebouncer.ts

示例2: makeCallOnHistory

export function createHistory$(history: History,
                               sink$: Stream<HistoryInput | string>): MemoryStream<Location> {
  const history$ = xs.createWithMemory<Location>().startWith(history.location);
  const call = makeCallOnHistory(history);
  const unlisten = history.listen((loc: Location) => { history$._n(loc); });
  const sub = sink$.subscribe(createObserver(call, unlisten));
  (history$ as any).dispose = () => { sub.unsubscribe(); unlisten(); };
  return history$;
};
开发者ID:whitecolor,项目名称:cyclejs,代码行数:9,代码来源:createHistory$.ts

示例3: trackPageView

export function trackPageView(history: History) {
  history.listen((location, action) => {
    if (action === 'PUSH') {
      // Wait a bit for the page title to update
      setTimeout(() => {
        withTracker((tracker) => tracker.trackPageView(document.title));
      }, 100);
    }
  });
}
开发者ID:nusmodifications,项目名称:nusmods,代码行数:10,代码来源:matomo.ts

示例4: call

  return function call(input: Narrow<HistoryInput>): void {
    if (input.type === 'push') {
      history.push(input.pathname, input.state);
    }

    if (input.type === 'replace') {
      history.replace(input.pathname, input.state);
    }

    if (input.type === 'go') {
      history.go(input.amount);
    }

    if (input.type === 'goBack') {
      history.goBack();
    }

    if (input.type === 'goForward') {
      history.goForward();
    }
  };
开发者ID:,项目名称:,代码行数:21,代码来源:

示例5:

export const updateSearch = (
  history: History,
  updates: { readonly [id: string]: any },
) => {
  history.push({
    pathname: history.location.pathname,
    search: qs.stringify({
      ...qs.parse(history.location.search),
      ...updates,
    }),
  });
};
开发者ID:mmerfort,项目名称:puppetexplorer,代码行数:12,代码来源:util.ts

示例6: updateEditor

   export function updateEditor(fileResource: FileResource) { // why would you ever ignore an update here?
      var resourcePath: FilePath = fileResource.getResourcePath();
      var isReadOnly = fileResource.isHistorical() || fileResource.isError();
      var realText: string = fileResource.getFileContent();
      var textToDisplay = resolveEditorTextToUse(fileResource);
      var session = editorView.getEditorPanel().getSession();
      var currentMode = session.getMode();
      var actualMode = resolveEditorMode(resourcePath.getResourcePath());

      saveEditorHistory(); // save any existing history
      
      if(actualMode != currentMode) {
         session.setMode({
            path: actualMode,
            v: Date.now() 
         })
      }
      if(!isReadOnly) {
         createEditorUndoManager(session, textToDisplay, realText, resourcePath); // restore any existing history      
      } else {
         createEditorWithoutUndoManager(textToDisplay);
      }
      clearEditor();
      setReadOnly(isReadOnly);
      
      editorView.updateResourcePath(resourcePath, isReadOnly);
      ProblemManager.highlightProblems(); // higlight problems on this resource
      
      if (resourcePath != null && editorView.getEditorResource()) {
         var filePath: string = editorView.getEditorResource().getFilePath();
         var allBreakpoints = editorView.getEditorBreakpoints();
         var breakpoints = allBreakpoints[filePath];
   
         if (breakpoints != null) {
            for(var lineNumber in breakpoints) {
               if (breakpoints.hasOwnProperty(lineNumber)) {
                  if (breakpoints[lineNumber] == true) {
                     setEditorBreakpoint(parseInt(lineNumber) - 1, true);
                  }
               }
            }
         }
      }
      Project.createEditorTab(); // update the tab name
      History.showFileHistory(); // update the history
      StatusPanel.showActiveFile(editorView.getEditorResource().getProjectPath());  
      FileEditor.showEditorFileInTree();
      scrollEditorToPosition();
      updateEditorTabMark(); // add a * to the name if its not in sync
   }
开发者ID:snapscript,项目名称:snap-develop,代码行数:50,代码来源:editor.ts

示例7: authSaga

export function* authSaga(
    history: History,
    authApi: IAuthApi,
    usersApi: IUsersApi
) {
    let token: IToken = yield call(authApi.getAuthToken)

    if (token) {
        token = yield call(login, history, authApi, usersApi, { type: 'token', token })
    } else {
        yield put(actions.logoutSuccess())
    }

    yield put(actions.authCheckFinished(token && token.value || null))

    while (true) {
        if (!token) {
            const { payload: credentials } = yield take(actions.login.getType())
            token = yield call(login, history, authApi, usersApi, credentials)
            if (token) {
                history.push('/')
            }
        }

        if (!token) {
            continue
        }

        let userLoggedOut = false
        while (!userLoggedOut) {
            const { expired } = yield race({
                expired: delay(Math.max(token.exp - Date.now() - 30000, 0)),
                loggedOut: take(actions.logout.getType()),
            })

            if (expired) {
                token = yield call(login, history, authApi, usersApi, { type: 'token', token })
            } else {
                yield call(logout, authApi)
                userLoggedOut = true
            }
        }
    }
}
开发者ID:steam-react,项目名称:steam,代码行数:44,代码来源:auth.ts

示例8: onBrowserChange

 function onBrowserChange(callback: (s: BrowserState, action: Action) => void): void {
   history.listen((location, action) => {
     currentPath = locationToPathConfigAndMatch(paths, location).path;
     callback(parseBrowserState(paths, location), action);
   });
   callback(parseBrowserState(paths, history.location), 'PUSH');
 }
开发者ID:buildo,项目名称:state,代码行数:7,代码来源:browser.ts

示例9: return

 return (key: string, value?) => {
   if (value === "") {
     delete querystring[key];
   } else {
     querystring[key] = value || key;
   }
   history.replace("?" + stringifyQs(querystring));
 };
开发者ID:p2p-ms,项目名称:front,代码行数:8,代码来源:utils.ts

示例10: run

  run (sink: Sink<Location>, scheduler: Scheduler) {
    const push = (l: Location) => sink.event(scheduler.now(), l);

    const unlisten = this.history.listen(push);

    return {
      dispose () {
        unlisten();
        sink.end(scheduler.now());
      }
    };
  }
开发者ID:TylorS,项目名称:most-history,代码行数:12,代码来源:index.ts


注:本文中的history.History类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。