我有一个接受事件的指令:
<td calendarEvent [event]=event><td>
在指令中,我有HostBinding
个用于根据事件添加类,HostListener
用于监听mouseenter
和mouseleave
个事件。例如:
@HostBinding('class.all-day') get eventIsAllDay() {
if (this.event) return this.event.is_all_day;
}
<td>
输入的undefined
个[event]
HostBinding
。有没有办法根据条件添加HostListener
和<td>
?在每次更改检测时,它必须为每个 public class UserLoginTask extends AsyncTask<Void, Void, Boolean> {
private final String mEmail;
private final String mPassword;
private boolean loginResult;
String errorMessage;
UserLoginTask(String email, String password) {
mEmail = email;
mPassword = password;
}
@Override
protected Boolean doInBackground(Void... params) {
Stormpath.login(mEmail, mPassword, new StormpathCallback<Void>() {
@Override
public void onSuccess(Void aVoid) {
Log.d("debug", "sucess");
loginResult = true;
}
@Override
public void onFailure(StormpathError error) {
errorMessage = error.message();
Log.d("debug", "Error: " + error.message());
loginResult = false;
}
});
return loginResult;
}
@Override
protected void onPostExecute(final Boolean success) {
mAuthTask = null;
showProgress(false);
if (success) {
finish();
} else {
Toast.makeText(LoginActivity.this, errorMessage, Toast.LENGTH_SHORT).show();
mPasswordView.setError(getString(R.string.error_incorrect_password));
mPasswordView.requestFocus();
}
}
@Override
protected void onCancelled() {
mAuthTask = null;
showProgress(false);
}
}
标记运行所有绑定和侦听器,甚至是那些没有事件的标记。也许所需的计算能力可以忽略不计,但每一点点都有助于我确定,特别是对于移动设备。
答案 0 :(得分:3)
无法有条件地添加这些内容。
您可以使用属性并绑定到该属性。使用属性进行更改检测比使用函数或getter更有效。
@HostBinding('class.all-day')
eventIsAllDay:boolean = false;
set event(val) {
this.event.is_all_day === val;
}