w punkcie w moim html robię takie rzeczy:Specjalne znaki w zmiennej kątowej znajduje się w pliku HTML
<li ng-repeat="favorite in favorites track by $index">
<a ng-href="javascript:void(0)" ng-click="changeSVG(favorite)">
<i class="fa fa-sitemap"></i>{{favorite}}
</a>
</li>
Problem polega na tym, że czasami favorite
w ng-click="changeSVG(favorite)"
zawiera znaki specjalne jak '
. Tak więc pojawiają się błędy w konsoli:
Error: [$parse:lexerr] http://errors.angularjs.org/1.3.14/ $parse/lexerr?p0=Unterminated%20quote&p1=s%2042-44%20%5B')%5D&p2=changeSVG('Process%20passageNaN'ordre%20MOB') at Error (native)
Jak mogę temu zapobiec?
Słyszałem o $ sce, kiedy się nad tym zastanawiałem, ale nie jestem pewien, czy pasuje on do moich potrzeb i jak używać go w moim kontrolerze.
Oto changeSVG()
funkcja:
$scope.changeSVG = function (svgName) {
var defaultZoom = getZoomFromCarto(svgName);
$scope.currentCartography = svgName;
$scope.currentZoom = defaultZoom;
if ($scope.cartoHistory.indexOf(svgName) != -1)
$scope.cartoHistory.splice($scope.cartoHistory.indexOf(svgName), 1);
$scope.cartoHistory.unshift(svgName)
if ($scope.cartoHistory.length > 20)
$scope.cartoHistory = $scope.cartoHistory.slice(0, 20);
localStorage.setItem("cartoHistory", JSON.stringify($scope.cartoHistory));
removeEmbed();
var svgPath = "SVG/" + $scope.currentLanguage + "/" + svgName + ".svg";
lastEmbed = createNewEmbed(svgPath, defaultZoom);
}
próbowałem wyświetlić svgPath w dzienniku, współpracuje z normalnych plików, ale gdy próbuję z moim pliku z (spacja) i
'
w swojej nazwa, nic nie jest wyświetlane.
próbowałeś 'changeSVG (favorite.toString()) lub' 'favorite.replace jak regex (/ \ '/ g, "\'") '? – Freezystem
Dobry pomysł, właśnie go wypróbowałem, ale nie działało – Ellone
i że: 'favorite.replace (/ \ '/ g," ' ")' lub '$ sce.trustAsHtml (ulubione)' – Freezystem