希望这个问题不太模糊
我在将逻辑放入我的范围模型中是正确的还是让它们保存数据的想法?
如果我有一个登录类负责保存用户登录详细信息并提供处理某些系统登录的逻辑,将其捆绑到模型中是否有意义?下面是一个粗略的示例:
class Login extends Model
{
String currentUser = "";
String currentPassword = "";
String state = "Not Logged In";
login(String username, String password) async
{
try {
_setHeaders(username, password);
state = "Logging In";
var _loginResult = await _makeLoginRequest(username, password)
if (_loginResult.success){
state = "Logged in";
currentUser = username;
currentPassword = password;
else
state = "Not Logged in";
notifyListeners();
}
on Error catch(e)
{
state = "Login Error"
notifyListeners();
}
}
}
将创建此类的实例并将其传递给我的main
void main() {
Login login = new Login();
runApp(ScopedModel<Login>(
model: login,
child: MaterialApp(
title: 'My App',
home: LoginPage(),
)),);
}
然后在LoginPage中使用此模型,将检查状态以确定显示什么以及何时更新(如果已登录则为注销按钮,如果出错则为警告等),并且将使用login
方法会被调用并通过按钮上的某些文本字段传递用户输入。