2016-04-05 17 views
1

böyle bir bağlantı var:ui-sref

<a href="#!/Procuts/%D8%B2%DB%8C%D8%B1%20%D8%B2%D8%A7%D9%86%D9%88"> A localized param </a> 

nasıl:

<a ui-sref="someState(Param:'مثال')"> A localized param </a> 

Eğik-ui-yönlendirici derleme, böyle bir href üretir Bunu önleyebilir miyim?

denedim ne: $urlMatcherFactoryProvider

$urlMatcherFactoryProvider.type('decoded', { 
    encode: function (item) { 
     return decodeURIComponent(item) // i put this to decode personally 
    }, 
    decode: function (item) { 
     return decodeURIComponent(item); 
    }, 
    is: function (item) { 
     return true; 
    } 
}); 

cevap

2

bu aslında içeride olur 'açısal' değil 'ngRoute', encodeURICompenent kullanarak tüm URL'ler kodlayan açısal kuvvetleri, böylece gerek kullanarak yeni bir tür oluşturmak o

function encodeUriQuery(val, pctEncodeSpaces) { 
    var r = /[\u0600-\u06ff]|[\u0750-\u077f]|[\ufb50-\ufc3f]|[\ufe70-\ufefc]/; 
    if(r.test(val)){ 
    return val.replace(/\s/g,'-'); 
    }else{ 
    return encodeURIComponent(val). 
      replace(/%40/gi, '@'). 
      replace(/%3A/gi, ':'). 
      replace(/%24/g, '$'). 
      replace(/%2C/gi, ','). 
      replace(/%3B/gi, ';'). 
      replace(/%20/g, (pctEncodeSpaces ? '%20' : '+')); 
    } 
} 

eğer kodlama olmadan arap karakterleri geçerdi böylece angularjs içeride encodeUriQuery değiştirmek Eğer küçültülmüş sürümü kullanıp kullanmadığınızı ya da burada koduna bakarak rahatsız etmek istemiyoruz kopyalayıp kodunuzda bu her yerde yapıştırabilirsiniz bir maymun yama

window.encode = window.encodeURIComponent; 
window.encodeURIComponent = function(val){return /[\u0600-\u06ff]|[\u0750-\u077f]|[\ufb50-\ufc3f]|[\ufe70-\ufefc]/.test(val) ? val.replace(/\s/g,'-') : window.encode(val)}; 

kısım replace(/\s/g,'-') bir tire ile boşlukları yerine geçmesi ihbar nedeniyle açısal o url

+0

'u gördüğünüz yerde, GERÇEKTEN TEŞEKKÜRLER! Bunu nasıl buldun inanılmaz? 'Ng-rotasını' sürdüm. –

0

aslında bunu cazibe gibi çalıştı benim için $scope.item.title tarihinde javaScript decodeURIComponent() işlevini kullanabilirsiniz çok basit bir çözüm de boşluk olması konusunda bazı sorunlar neden olur. denetleyicisi

Gördüğünüz incelemek içinde

$state.go("single-page", { contentType: "portfolio", date: "139411", title: decodeURIComponent("اولین-نمونه-کار-تست") }); 

gibi kullanabilirsiniz gibi bir şey: enter image description here google seo için iyi google Farsça daha iyi bu şekilde

anlaşılan ama onun içinde bağlantıyı tıkladığınızda url, bu enter image description here

+0

lütfen bize bir örnek verin –

+0

@HamedZakeryMiab sülfozu güncelledim –