JoH*_*ksi 11 javascript angularjs
在我的角度,我定义了一个范围变量$scope.letter_content.加载视图时,我从我的数据库加载字符串并将其设置为$scope.letter_content.然后,我填写我正在使用的texteditor(Froala).
以下是视图的代码:
{{letter_content}}
<div ng-if="formData['page_number'] == 1 ">
{{letter_content}}
<textarea id="froala-sample-2" froala="froalaOptions" ng-model="letter_content"></textarea>
</div>
Run Code Online (Sandbox Code Playgroud)
所以基本上我设置letter_content为texteditor的ng-model.因此,当我对texteditor进行更改时,它会修改该值$scope.letter_content.
我发现奇怪的一件事是,当我修改texteditor中的文本时,它会{{letter_content}}在div内部发生变化.但是,它不会{{letter_content}}在div之外更新.
当我在texteditor中编辑文本时,我发送一个put请求来更新数据库中的值$scope.letter_content.然而,它最终发送{{letter_content}}到div之外,最终没有更新内容.
为什么会发生这种奇怪的事情?
Sau*_*mil 24
我有一个非常相似甚至更奇怪的问题,我scope使用HTTP调用的响应来更新我的一个变量,令人惊讶的是,除非我进行另一个HTTP调用,否则我的视图不会更新,而另一个我的意思是任何其他随机HTTP调用.
使用$apply为我工作,
$scope.$apply(function () {
$scope.resultData.totalResults = response.data.total;
});
Run Code Online (Sandbox Code Playgroud)
小智 17
实际上这已在更多链接中讨论过.
不要使用原始类型变量.而不是在范围内使用对象.
例如,不要使用like $scope.primitiveVariale而不是this$scope.object={primitiveVariale:null}
所以在视图中使用就像object.primitiveVariale那时这将反映在所有视图中.请参阅以下链接.
https://github.com/angular/angular.js/wiki/Understanding-Scopes
该ng-if指令创建一个新的作用域,因此letter_content内部div在ng-if作用域中,而letter_content外部在控制器作用域中。
阅读API文档,以了解哪个指令创建了新作用域。
为避免此类问题,请考虑使用controllerAs语法
不要使用这样的普通值,您需要将这些值放入对象中,因此请在控制器中尝试:
$scope.obj = { letter_content: null};
Run Code Online (Sandbox Code Playgroud)
然后在你看来:
{{obj.letter_content}}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
32242 次 |
| 最近记录: |