A new answer is now possible for this question: you may be using an old version of AngularJS, because newer versions do not have this.
See here a repro of OP's issue with the latest version at the time the question was asked (1.1.0):
angular.module("demo", [])
.controller("myctrl", function($scope) {
$scope.state = { name: "test" };
});
<script src="https://code.angularjs.org/1.1.0/angular.js"></script>
<div ng-app="demo" ng-controller="myctrl">
(this snippet explicitly errors out, reproducing OP's issue)<br>
<input ng-model="state.name">
<div ng-show="state.name === 'test'">visible when "test" is in the input</div>
Debug info: <pre>{{state | json}}</pre>
</div>
And see here the same code, but with version 1.5.6, the latest version at the time of writing this answer:
angular.module("demo", [])
.controller("myctrl", function($scope) {
$scope.state = { name: "test" };
});
<script src="https://code.angularjs.org/1.5.6/angular.js"></script>
<div ng-app="demo" ng-controller="myctrl">
Working version<br>
<input ng-model="state.name">
<div ng-show="state.name === 'test'">visible when "test" is in the input</div>
Debug info: <pre>{{state | json}}</pre>
</div>
Presumably this was fixed in 2013, version 1.1.2, because the change log mentions:
- $parse: allow strict equality in angular expressions (a179a9a9, #908)
Footnote: I've phrased the above as an answer to the question. If you're upvoting my answer, that unfortunately probably means that you landed on this thread with a search query like I had, only to find out that the "unexpected token" error you're getting is not caused by the issue OP had here...