我注意到RxSwift GitHub Login Example在初始化时会将Viewservtroller传递给ViewMode:
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函数
答案 0 :(得分:1)
很难说你以前的方法是不是坏形式,只用一句话。视图模型函数如何访问字段值?它是如何将结果返回给视图控制器的?为了给出正确的答案,我们需要查看代码。
对于"胖init
",它可能是个人偏好,但我没有看到它的问题。无论如何,这些投入将在某处处理。因此,init
中的一行对于我来说对于视图控制器来说似乎相当渺茫。