このページでパス変数を取得して、ユーザーが入力したときにスペースと句読点を変更しようとしています。対応するコードは次のとおりです。
<!doctype html>
<html lang="en-US" ng-app>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width">
<title>ng-change</title>
<link rel="stylesheet" type="text/css" href="mystyle.css" media="all"/>
<script type="text/javascript" src="angular_1.0.7.js"></script>
</head>
<body>
<div class="browser" ng-controller="Browser">
<!--Mock browser URL-->
<div class="url">
← → ∞
<input type="text" value="edit/{{ path }}"/>
</div>
<!--Input field for the page, mock page-->
<div class="page">
<label for="update">
Update the URL:
<input ng-change="clean()" ng-model="path"/>
</label>
</div>
</div>
<script type="text/javascript" src="script.js"></script>
</body>
</html>
ただし、何かを入力しても何も起こりません。script.js ファイルは次のとおりです。
var Browser = function ($scope) {
$scope.clean = function () {
$scope.path = $scope.path
.replace("/\s+/g", "-")
.replace("/[^a-z0-9-]/i", "");
console.log($scope.path);
};
};
私は自分のjavaScriptを正しく取得したと確信していますが、なぜ私のアプリが機能しないのか正確にはわかりません.デバッグを試みました.問題はng-change
、スペース以外の文字が置かれたときの変更のみを考慮しているようですin では、スペースが挿入されるたびに無視されます。