在哪里绑定 MVVM 中的可观察对象?
Where to bind observables in MVVM?
我在 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 函数
仅凭一句话很难说您以前的方法是否有问题。视图模型函数如何访问字段值?它是如何 return 向视图控制器发送结果的?要给出正确的响应,我们需要查看代码。
至于"fat init
",这可能是个人喜好,但我看不出有什么问题。不管怎样,这些输入将在某个地方得到处理。所以 init
中的一行最终对我来说对于视图控制器来说似乎很苗条。
我在 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 函数
仅凭一句话很难说您以前的方法是否有问题。视图模型函数如何访问字段值?它是如何 return 向视图控制器发送结果的?要给出正确的响应,我们需要查看代码。
至于"fat init
",这可能是个人喜好,但我看不出有什么问题。不管怎样,这些输入将在某个地方得到处理。所以 init
中的一行最终对我来说对于视图控制器来说似乎很苗条。