仍在学习Angular然而我需要快速修复某些东西,我无法弄明白。我有一个网站,为您提供USPS运输选项,并需要告诉网站使用我的文本而不是供应商的。该供应商称“2天发货™”,但我想用“标准地面”取代它。
这就是我对过滤器的要求:
app.filter('shipFilter',function() {
return function(string) {
if (string) {
return string.replace('2-Day Ship™', 'Standard Ground');
}
}
在我的HTML中:
<select class="form-control" ng-change="updateShipper()" name="shipMethod"
ng-model="currentOrder.LineItems[0].ShipperName"
ng-show="user.ShipMethod.ShipperSelectionType == 'UserDropDown'"
ng-options="shipper.Name | shipFilter as (shipper.Name + ' ' + (shipper.ShippingRate.Price | currency | xlat)) for shipper in shippers"
ng-required="!currentOrder.IsMultipleShip() && user.ShipMethod != null" />
<option value=""></option></select>
这似乎是一个简单的补丁,但是我遇到了墙壁,没有时间。
干杯
答案 0 :(得分:1)
已经有一段时间,但我想发布我所做的修复。我不得不这样做:
filter.js
//For changing USPS shipping option in dropdown
four51.app.filter('USPSFilter',function() {
debugger;
return function(object) {
if (object) {
return object.replace(/USPS Priority Mail 2-Day™/g, 'US Postal Ground');
}
}
});
将此添加到html以显示下拉列表中的更改:
ng-options="shipper.Name as ((shipper.Name | USPSFilter) + ' ' + (shipper.ShippingRate.Price | currency | xlat)) for shipper in shippers"
将此添加到我的controller.js:
$scope.items = [{name: 'Ground' },{ name: 'Rush' }]
答案 1 :(得分:0)
我在@MatthewGreen的同一页上。您的作用域中有一个数组,因此您只需修改作用域中的数组。但是,如果这绝对不可能,我写了一个正确更改字符串名称的片段。
strs = [
"2-Day Ship™",
"Next Day"
]
var filter = function(string) {
if (string) {
return string.replace(/2-Day Ship™/g, 'Standard Ground');
}
}
console.log(strs)
strs = strs.map(filter)
console.log(strs)
&#13;