我创建了一个自定义过滤器,这是我的测试视图来探测它:
<div>{{ 1400956671914 | userDate }}</div>
<div>{{ 1288323623006 | userDate }}</div>
这是基于角度过滤器,并根据自己的喜好设置用户日期格式:
app.filter('userDate', function ($filter, userModel) {
var userDate = userModel.getPreferences().dateFormat;
// userDate = 'yyyy-mm-dd'
function userDateFilter (date) {
return $filter('date')(date, userDate);
};
return userDateFilter;
});
结果如下:
2014-05-24
2010-10-28
我有一个视图,我更新模型userModel并将dateFormat设置为&#39; dd / mm / yyyy&#39;然后我回到我的测试视图,它仍然是相同的:
2014-05-24
2010-10-28
我必须按f5才能看到预期的变化:
24/05/2014
28/10/2010
如何监听模型中的更改以更新过滤器?
答案 0 :(得分:1)
/*union*/ struct coordinates {
/*struct*/ union {
double X;
double U;
};
/*struct*/ union {
double Y;
double V;
};
/*struct*/ union {
double Z;
double W;
};
};
中捕获了 userDate
格式。如果用户偏好改变,它将不会被改变。您想要的是在执行过滤器时获取用户日期格式。尝试:
userDateFilter
答案 1 :(得分:0)
你是如何改变模型的? I:在某些情况下,你会想要将它包装在一个角度$ timeout()中,因为它会影响下一个周期。尽量避免使用$ apply()陷阱。