рдореЗрд░реЗ рдкрд╛рд╕ рдореЗрд░рд╛ рдХреЛрдб рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
one_time.js
var sample = angular.module('sample', []);
sample.controller('OneTimeController', function () {
this.name = 'John';
this.blah = 'sdflk';
});
index.html
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script>
<script type="text/javascript" src="one_time.js"></script>
</head>
<body ng-app="sample">
<div ng-controller="OneTimeController as test">
<p>Input something in the input box:</p>
<p>Name: <input type="text" ng-model="test.name" value="John"></p>
<p ng-bind="test.name"></p>
<p ng-bind="::test.name"></p>
<p ng-if="test.name && test.blah">testing</p> <!-- works perfectly-->
<p ng-if="::test.name && test.blah">testing with first expression as one time binded</p> <!-- works but the second property is not one time binded-->
<p ng-if="::test.name && ::test.blah">testing with one time bind</p><!-- doesn't work throws syntax error-->
</div>
</body>
</html>
рдореИрдВ рдПрдХ <p>
рдЯреИрдЧ рдХреЛ рдПрдирдЬреА-рдЗрдл рдХрдВрдбреАрд╢рди рдХреЗ рд╕рд╛рде рджрд┐рдЦрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬрд┐рд╕рдореЗрдВ рдореИрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдирд╛рдо рд╕рдВрдкрддреНрддрд┐ рдПрдХ рдмрд╛рд░ рдмрд╛рдзреНрдп рд╣реЛред рдореБрдЭреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдирд╣реАрдВ рдмрджрд▓реЗрдЧрд╛ рдЗрд╕рд▓рд┐рдП рдПрдирдЬреА-рдЗрдл рдореЗрдВ рднреА рдПрдХ рдмрд╛рд░ рдмрд╛рдзреНрдпрдХрд╛рд░реА рдХреЛрд╢рд┐рд╢ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬрдм рдореИрдВ рдПрдХ рдмрд╛рд░ рдмрд╛рдзреНрдпрдХрд╛рд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рдпрд╛ рдЬрдм рдореИрдВ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдкрд╣рд▓реА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд╕рд╛рде рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рдмрд╛рдзреНрдпрдХрд╛рд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ <p ng-if="::test.name && test.blah">testing with first expression as one time binded</p>
, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЬрдм рдореИрдВ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдореЗрдВ рдПрдХ рдмрд╛рд░ рдмрд╛рдзреНрдпрдХрд╛рд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВ рдПрдХ рдЧрд╛рд░реНрдб рдСрдкрд░реЗрдЯрд░ рдпрд╣ рдореБрдЭреЗ рд╕рд┐рдВрдЯреИрдХреНрд╕ рддреНрд░реБрдЯрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рддреНрд░реБрдЯрд┐ рджреЗрддрд╛ рд╣реИ:
Error: [$parse:syntax] Syntax Error: Token ':' not a primary expression at column 14 of the expression [test.name && ::test.blah && ::test.blah] starting at [::test.blah && ::test.blah].
http://errors.angularjs.org/1.3.14/$parse/syntax?
рдХреНрдпрд╛ рдпрд╣ рдПрдХ рдмрдЧ рдпрд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рддреНрд░реБрдЯрд┐ рд╣реИ? рдореИрдВ angularjs рд╕рдВрд╕реНрдХрд░рдг 1.3.14 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдПрдХреНрд╕рдкреНрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рдСрди-рдЯрд╛рдЗрдо-рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП ()
рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП: <p ng-if="::(test.name && test.blah)">testing with first expression as one time binded</p>
@piernik рдзрдиреНрдпрд╡рд╛рдж рдПрдХ рдЖрдХрд░реНрд╖рдг рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдореИрдВ (::test.name) && (::test.blah)
рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рдерд╛ рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкрд╣рд▓реЗ ::
рдПрдХ рдмрд╛рд░ рдмрд╛рдзреНрдпрдХрд╛рд░реА рд╕рдХреНрд░рд┐рдп рдХрд░рддрд╛ рд╣реИред :+1:
рд╡рди рдЯрд╛рдЗрдо рдмрд╛рдЗрдВрдбрд┐рдВрдЧ (::) рдПрдирдЬреА-рдЗрдл рдХреЗ рднреАрддрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рднрд╛рд╡реЛрдВ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред
<p ng-if="::test.name && test.blah"> is same as <p ng-if="::(test.name && test.blah)">
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рд╣рдо рдХреЛрдгреАрдп рдЬреЗрдПрд╕ рдореЗрдВ рдПрдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдореЗрдВ рдПрдХ рдмрд╛рд░ рдмрд╛рдзреНрдпрдХрд╛рд░реА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдмрд╛рд░ рдмрд╛рдзреНрдпрдХрд╛рд░реА рдорд┐рд╢реНрд░рдг рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдПрдХреНрд╕рдкреНрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рдСрди-рдЯрд╛рдЗрдо-рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП
()
рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП:<p ng-if="::(test.name && test.blah)">testing with first expression as one time binded</p>