Явное доверие к HTML С помощью $sce
Если вы хотите, чтобы Angular отображал данные модели как HTML без каких-либо вопросов, служба $sce
- это то, что вам нужно. $sce
- это служба Strict Contextual Escaping - причудливое имя для службы, которая может обертывать HTML-строку объектом, который сообщает остальной части Angular HTML, где ему доверяют.
В следующей версии контроллера запрашивает службу $sce
и использует службу для преобразования массива ссылок в массив доверенных объектов HTML с помощью $sce.trustAsHtml.
app.controller('XYZController', function ($scope, $sce) {
$sce.trustAsHtml("<table><tr><td><a onclick='DeleteTaskType();' href='#workplan'>Delete</a></td></tr></table>");
Сначала вы split
вашего String
, создаете массив double
с тем же размером и копируете элементы, изменяя их при необходимости .:
String inputArray[] = input.split("\\.");
double outputArray = new double[input.length];
for (int index = 0; index < inputArray.length; index++) {
if ((inputArray[index].length() > 1) && (inputArray[index].startsWith("0"))) inputArray = inputArray.substring(0, 1) + "." + inputArray.substring(1);
outputArray[index] = Double.valueOf(inputArray[index]);
}
Для вашего конкретного случая есть обходной путь. Если у вас есть строка с нулем в начале 009
, вы можете создать новую с правильным форматом 0.09
, а затем преобразовать в двойное значение как Double.valueOf(string)
Это, конечно, непроверенный код ...
public Double[] convertTab(String myStr) {
//We start by splitting the string:
String[] tab = myStr.split("\\.");
//We need a structure of double as a result
List<Double> result = new ArrayList<Double>();
//Then we loop on the different elements of the table
for (String sNum : tab) {
//Then we convert, which isn't easy because the rules are ambiguous in your question
result.add(convertDouble(sNum);
}
return result.toArray();
}
public double convertDouble(String sDouble) {
int accu = 1;
for (int i=0;i<sDouble.length();i++) {
//We count the number of 0
if (sDouble.charAt(i) == '0') {
accu = accu*10;
} else {
//Parsing of the remaining digits and division
return Double.parseDouble(sDouble)/accu;
}
}