我发现的几乎所有关于flux的教程每个商店只发出一个事件(emitChange).我真的不知道,这是故意的,或仅仅是教程简单的结果.
我尝试实现一个与CRUD架构相对应的商店,我想知道为每个CRUD方法发出不同事件是否是一个好的设计决策.
我的一家商店的相关部分看起来像这样:
var UserStore = _.extend({}, EventEmitter.prototype, {
emitChange: function() {
this.emit('change');
},
emitUserAdded: function() {
this.emit('userAdded');
},
emitUserUpdated: function() {
this.emit('userUpdated');
},
emitUserDeleted: function() {
this.emit('userDeleted');
},
// addListener, removeListener in the same manner
});
Run Code Online (Sandbox Code Playgroud)
如果我的方法是错误的,我如何告诉我的组件发生的事件类型(例如:删除或更新)
我正在尝试使用$ ionicPopup来处理我的应用程序上的登录/注册.我正在从服务中打开它,所以我创建了一个新的范围并将其附加到ionicPopup.它看起来像这样:
$ionicPopup.show
template: '''
<form name="loginForm" novalidate>
...
</form>
''',
scope: $scope,
buttons: [
{
text: 'Cancel',
},
{
text: '<b>Save</b>',
type: 'button-positive',
onTap: ( e ) ->
form = $scope.loginForm #why is it undefined?
}
]
Run Code Online (Sandbox Code Playgroud)
所以我将表单命名为loginForm,我想在onTap函数内访问它以处理验证.但是$ scope上不存在loginForm,就像在控制器内部的正常形式验证一样.所以你知道我应该如何处理这里的验证吗?
谢谢!
我有一个反应应用程序,我想在我的应用程序的多个部分中使用"Dispatcher架构",它们彼此完全无关.
(一个是传统的组件/操作/存储处理,另一个是一些可互换的插件,可以通过这种方式注册到Dispatchers,从而将它与主应用程序分离.)
由于这两个部分彼此无关,我想为它使用两个不同的调度程序.
是否可能,或者由于调度员是单身人士,我只能使用一个?
我知道关于这个话题已经有一些类似的问题,但不知怎的,它们都没有帮助.我想在使用requirejs和Typescript的项目中使用angular.js.
我有一个模块,我使用angular来创建一个服务模块:
/// <reference path="../../../typings/angularjs/angular.d.ts" />
...
var services = angular.module('services', []);
...
export = services;
Run Code Online (Sandbox Code Playgroud)
这段代码编译时没有错误,但是在创建的js文件中,还没有angular.js依赖项:
define(["require", "exports"], function(require, exports) {
...
}
Run Code Online (Sandbox Code Playgroud)
当我运行应用程序时,浏览器会抱怨:未捕获的ReferenceError:未定义angular
我的猜测是,除了引用它之外我还应该导入角度,但是我试过的路径都没有.
这是我的require.js配置,以防需要:
require.config({
paths: {
angular: '../lib/angular/angular',
...
},
shim: {
angular : {exports : 'angular'},
...
}
)}
Run Code Online (Sandbox Code Playgroud)
你可以帮助我,这里缺少什么?谢谢.
我想将一个<input type=file/>字段放入引导 DropDown 组件中。它渲染正确,但如果我单击它,它不会打开浏览器的本机文件选择器。
我怀疑当我单击输入组件时,输入组件可能会重新渲染,因此文件选择器没有机会运行,但据我所知,没有发生重新渲染。
请参阅下面的示例:
Promise 构造函数中错误处理的最佳实践是什么?
Promises 在promise 链中具有传播错误的巨大优势,错误无法逃脱,但是涉及到Promise 构造函数时,您必须手动处理可能出现的错误。
让我举个例子:
new Promise(resolve => {
throw new Error('error in the constructor');
resolve();
});
Run Code Online (Sandbox Code Playgroud)
当上面的代码运行时,承诺永远不会得到解决(或拒绝),所以我无法处理承诺链中的错误。现在一个明显的解决方案是:
new Promise((resolve, reject) => {
try {
throw new Error('error in the constructor');
resolve();
} catch(error) {
reject(error)
}
});
Run Code Online (Sandbox Code Playgroud)
但是在构造函数中一直进行手动错误检查对我来说似乎有点矫枉过正,同时例如在 Promise 的then方法中我不需要这个。
因此,例如以下解决方案执行相同的操作,但没有手动错误处理:
Promise.resolve()
.then(() => {
throw new Error('error in the constructor');
});
Run Code Online (Sandbox Code Playgroud)
所以我的问题是,有没有更好的方法来在 Promise 构造函数中进行错误处理?或者我应该使用最后一个例子,在我看来它更简洁。
reactjs ×3
amd ×1
angularjs ×1
flux ×1
javascript ×1
promise ×1
reactjs-flux ×1
requirejs ×1
typescript ×1