我在RxSwift GitHub Login Example上注意到,可观察对象在初始化时从ViewController传递到ViewModel:
let viewModel = GithubSignupViewModel1(
input: (
username: usernameOutlet.rx_text.asObservable(),
password: passwordOutlet.rx_text.asObservable(),
repeatedPassword: repeatedPasswordOutlet.rx_text.asObservable(),
loginTaps: signupOutlet.rx_tap.asObservable()
),
dependency: (
API: GitHubDefaultAPI.sharedAPI,
validationService: GitHubDefaultValidationService.sharedValidationService,
wireframe: DefaultWireframe.sharedInstance
)
)
这是在反应式编程中绑定登录点击和文本字段的正确方式吗?
在看到此示例之前,我在ViewModel onSignUpClick()
中创建了一个函数,并从视图控制器绑定单击以运行该函数。这是不是很糟糕的形式?
似乎如果所有内容都通过init传递,则会产生一个非常胖的init函数。
发布于 2016-08-06 09:32:19
很难从一句话来判断你之前的方法是不是很糟糕。视图模型函数如何访问字段值?它是如何将结果返回给视图控制器的?为了给出正确的响应,我们需要查看代码。
至于“胖init
",这可能是个人喜好,但我看不出有什么问题。不管怎样,这些输入将会在某个地方被处理。因此,在我看来,init
中的一行代码对于视图控制器来说似乎相当微不足道。
https://stackoverflow.com/questions/38794316
复制