angular - Konvertera sträng till objekt i typescript?
Jag försöker validera ett glob-uttryck med Is-Valid-Glob som accepterar sträng och array. Värdet som behöver valideras tas emot från ett textfält. Problemet är att om vi skickar ett ogiltigt glob-uttryck så ger det fel resultat eftersom alla inmatningar tas emot som sträng. Till exempel: Om användaren skriver [] (ogiltigt glob) tilldelas det modellvariabeln som strängen '[]' och valideringen görs på '[]' istället för []-värdet. Finns det ett sätt att konvertera värdet från en strängvariabel till en objektvariabel (endast värdet, inte typen) och utföra validering?
PS: Jag använder Angular 2.
Svar #1
Du kan använda JSON.parse för att konvertera från sträng till objekt:
var x = require('is-valid-glob');
var y = '[]';//'foo/*.js' any user provided string
// this will check if the user has provided an array object if so it
//will do a json.parse to remove the '' and then verify the string for a glob.
x(y[1] !== '['?y:JSON.parse(y));
Svar #2
Prova med eval det används för att konvertera strängar till motsvarande objekt, till exempel,
var a="[]";
console.log(a);// this will print "[]" as a string.
console.log(eval(a));// this will print an array object. With 0 length array object.
