在Angular中,如何添加按钮而不提交表单?
例如,我想在onCancel不提交表单的情况下打电话,但是更新按钮应提交表单,并且仍然保留ngSubmit。
<form [formGroup]="form" (ngSubmit)="submit()">
<p>
<select ...>...</select>
</p>
<p>
<button
type="submit"
mat-raised-button
color="primary">
update
</button>
<button mat-raised-button (click)="onCancel($event)">
cancel
</button>
</p>
</form>
Run Code Online (Sandbox Code Playgroud) 我刚刚使用 cli(v8 - 从今天开始的最新版本)创建了 angular 应用程序。到目前为止我没有做任何特别的事情。( ng new ng-app).
我使用jest-schematic将 jest 添加到我的 angular 项目中。
cd ng-app
ng add @briebug/jest-schematic
Run Code Online (Sandbox Code Playgroud)
问题是当我使用以下命令运行测试时出现错误npm run test:
> jest
FAIL src/app/app.component.spec.ts
? Test suite failed to run
File not found: jest-preset-angular/InlineHtmlStripStylesTransformer.js (resolved as: C:\ng-app\jest-preset-angular\InlineHtmlStripStylesTransformer.js)
Run Code Online (Sandbox Code Playgroud)
这里缺少什么?我该如何解决?
我有video.js和 vue 的应用程序。
我试图找到一种隐藏或禁用这些控件的方法:播放按钮、播放速率,并使进度条变为只读。
我有controls: false隐藏所有控件栏的 video.js 文档。这不是我想要的。
我还尝试在打字稿中确定确定类型,在 controlBar 选项中只有两个属性:volumePanel 和 fullscreenToggle。与播放或进度条或速率无关。
编辑我找到controlBar: { playToggle: false }哪个隐藏播放按钮。
但我仍然找到了一种方法来制作只读/禁用进度条。
知道怎么做吗?
我的代码看起来像这个片段:
Vue.use(VueVideoPlayer)
new Vue({
el: '#vueapp',
data() {
return {
message: 'Hi from Vue',
// videojs options
playerOptions: {
height: '360',
autoplay: true,
muted: true,
language: 'en',
playbackRates: [0.7, 1.0, 1.5, 2.0],
sources: [{
type: "video/mp4",
// mp4
src: "http://vjs.zencdn.net/v/oceans.mp4",
// webm
// src: "https://cdn.theguardian.tv/webM/2015/07/20/150716YesMen_synd_768k_vp8.webm"
}],
poster: "https://surmon-china.github.io/vue-quill-editor/static/images/surmon-1.jpg", …Run Code Online (Sandbox Code Playgroud)我在页面上:/foo然后单击按钮将我重定向到/bar。但我有 beforeEach 路线事件将我重定向到/login. 登录后,我重定向到/bar.
当我点击/bar后退按钮时,我进入登录页面。我想获取最后一页,即/foo。
我该怎么做?有没有一种方法可以重定向到登录而不添加路由到历史记录?
router.beforeEach((to, from, next) => {
if (!to.matched.some((record) => record.meta.auth)) { return next(); }
return next({
path: '/login',
});
});
Run Code Online (Sandbox Code Playgroud) 我有 ngrx 应用程序,我无法通过我在组件中发送的有效负载从效果中的选择器中获取值。
我写了一个我处理的示例代码:
这是我的状态,里面有一个简单的 docs 数组。
export const initialState = {
docs: [{ id: 1, name: "doc1" }, { id: 2, name: "doc2" }]
};
export const reducer = createReducer(
initialState,
);
Run Code Online (Sandbox Code Playgroud)
我不处理这个问题的任何行动,这不是问题。
在我的组件中,我使用选择器获取数组:
docs$ = this.store.pipe(select(fromStore.getAllDocs));
{{docs$ | async | json}}
Run Code Online (Sandbox Code Playgroud)
减速机:
export const selectDocsState = createFeatureSelector("docs");
export const selectDocsStatusState = createSelector(
selectDocsState,
state => state["docs"]
);
export const getAllDocs = createSelector(
selectDocsStatusState,
getDocs
)
Run Code Online (Sandbox Code Playgroud)
我还有一个通过 id 获取的选择器:
{{docsById$ | async | json }}
docsById$ = this.store.pipe(select(fromStore.getById, { …Run Code Online (Sandbox Code Playgroud) 我想将我的包发布到 npm。我得到的错误是:包名称与现有包太相似
403 Forbidden - PUT https://registry.npmjs.org/mypack.... - Package name too similar to existing packages; try renaming your package to '@user../mypackage...' and publishing with 'npm publish --access=public' instead
Run Code Online (Sandbox Code Playgroud)
但是当我尝试安装时:
npm I mypackage...
Run Code Online (Sandbox Code Playgroud)
我收到未找到错误:
npm ERR! 404 Not Found - GET https://registry.npmjs.org/mypackage... - Not found
Run Code Online (Sandbox Code Playgroud)
有没有办法检查该名称是否适合 npm 而不仅仅是猜测?因为发布后我无法删除包..
我想仅通过命令增加项目中的版本(无需发布)。
所以我尝试lerna version 1.0.1或lerna version并且版本保持不变。(1.0.0),在lerna.json和 中package.json。
如何让它发挥作用?lerna.json我需要一个 lerna 命令来增加和中的版本package.json。
我想使用 jwt 令牌向我的应用程序添加身份验证。
每次我向服务器发送请求时,我都会附加服务器创建的令牌。
我受伤了,这种在标头中发送令牌的安全方法吗?如果有人访问我的计算机并在 devtools 选项卡中检查我的网络并看到我的令牌,他可以使用令牌模拟请求并控制用户数据。
这是常见的情况吗?以及窃取和破解 jwt 令牌的方法?
我有带有键和值的对象(不是数组):
const obj = {
1: { id: 1, name: 'name', ...},
2: { id: 2, name: 'name', ...},
3: { id: 3, name: 'name', ...},
4: { id: 4, name: 'name', ...},
5: { id: 5, name: 'name', ...},
6: { id: 6, name: 'name', ...},
}
Run Code Online (Sandbox Code Playgroud)
如何在 javascript 中获取该对象的前 3 个元素?
例如我想得到 3 我期望的对象是(带有键和值):
const obj = {
1: { id: 1, name: 'name', ...},
2: { id: 2, name: 'name', ...},
3: { …Run Code Online (Sandbox Code Playgroud) angular ×3
javascript ×3
vue.js ×3
npm ×2
html ×1
jestjs ×1
lerna ×1
ngrx ×1
rxjs ×1
video.js ×1
vue-router ×1
vuetify.js ×1