Javascript 如果使用src而不是ng src,angular如何仍然渲染图像?

Javascript 如果使用src而不是ng src,angular如何仍然渲染图像?,javascript,angularjs,Javascript,Angularjs,根据angular docs及其解释,我们应该在图像url为角度表达式的图像标记中使用ng src而不是src e、 g. 但是在我的例子中,如果我使用src,浏览器仍然渲染图像。在控制台中,我可以看到一个失败的图像调用,它试图访问精确的表达式,如../Desktop/%7B%7Bcountry.flagURL%7D%7D 但是,稍后还有另一个对图像的调用,该调用是从angular.js启动的,它实际渲染图像并将其显示在浏览器中 所以我的问题是-如果使用src可以实现同样的效果,那么ng src

根据angular docs及其解释,我们应该在图像url为角度表达式的图像标记中使用
ng src
而不是
src

e、 g.

但是在我的例子中,如果我使用
src
,浏览器仍然渲染图像。在控制台中,我可以看到一个失败的图像调用,它试图访问精确的表达式,如
../Desktop/%7B%7Bcountry.flagURL%7D%7D

但是,稍后还有另一个对图像的调用,该调用是从angular.js启动的,它实际渲染图像并将其显示在浏览器中

所以我的问题是-如果使用
src
可以实现同样的效果,那么
ng src
有什么用?似乎只会有一个额外的网络呼叫。
当我不使用
ngsrc
时,在角度上渲染图像会发生什么

下面是我的代码片段。你可以跑过去看看


Angular.js示例
var countryApp=angular.module('countryApp',[]);
countryApp.controller('CountryCtrl',函数($scope,$http){
数据=[
{
“名称”:“中国”,
“人口”:1359821000,
“flagURL”:https://upload.wikimedia.org/wikipedia/commons/f/fa/Flag_of_the_People%27s_Republic_of_China.svg"
},
{
“名称”:“印度”,
“人口”:1205625000,
“flagURL”:https://upload.wikimedia.org/wikipedia/en/4/41/Flag_of_India.svg"
},
{
“名称”:“美利坚合众国”,
“人口”:312247000,
“flagURL”:https://upload.wikimedia.org/wikipedia/en/a/a4/Flag_of_the_United_States.svg"
}
];
$scope.countries=数据;
});
国家
人口
旗帜
{{country.name}
{{国家人口}
带有

<img ng-src="{{country.flagURL}}" width="100">

Angular在计算ng src中的表达式之前不会加载图像

但是,

<img src="{{country.flagURL}}" width="100">

浏览器尝试加载带有原始(未计算)表达式的图像,这导致对服务器的
GET
请求失败。但只要角度加载并计算
src
标记下的表达式,浏览器就会用新的url值重新呈现图像标记


简而言之,
ngsrc
只是停止加载图像,直到执行表达式以避免初始无效请求(使用无效URL)。检查
ng src
的实现。它只是添加了
src
标记图像,从而导致
GET
请求图像。

如果浏览器在初始化angular应用程序之前加载图像,会发生什么情况。图像标记将具有错误的src url、原始角度表达式。是@MatejP的解释可能重复@正如您所指的Ceylamumunkucable所说,为什么要使用
ngSrc
而不是
src
。我的查询是完全开放的,它如何与
src
!!希望这能澄清我的疑问。@maximusツ 没错。Img标记将具有错误的src url,因此它不应显示图像。但在我的例子中,它显示图像并正确地替换
src
,尽管我没有使用
ngsrc
。那么,这是怎么发生的?