Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript href中的角度绑定有效,但src绑定无效?_Javascript_Angularjs - Fatal编程技术网

Javascript href中的角度绑定有效,但src绑定无效?

Javascript href中的角度绑定有效,但src绑定无效?,javascript,angularjs,Javascript,Angularjs,我是Angular的新手,我正试图通过他们自己网站上的教程来了解它 现在,我从这一特定步骤中了解到,我可以使用href=“#/phones/{{phone.id}}”和Angular在处理时绑定{phone.id},但为了绑定src属性,它需要ngsrc属性,否则浏览器将处理{expression}按字面意思标记 为什么src不适用于角度绑定,而href适用于角度绑定?为什么我们不需要ng href或类似的东西来让它工作呢?因为浏览器在呈现html页面时试图从src属性下载图像。因此,当页面第

我是Angular的新手,我正试图通过他们自己网站上的教程来了解它

现在,我从这一特定步骤中了解到,我可以使用
href=“#/phones/{{phone.id}}”
和Angular在处理时绑定
{phone.id}
,但为了绑定
src
属性,它需要
ngsrc
属性,否则浏览器将处理
{expression}
按字面意思标记


为什么
src
不适用于角度绑定,而
href
适用于角度绑定?为什么我们不需要
ng href
或类似的东西来让它工作呢?

因为浏览器在呈现html页面时试图从
src
属性下载图像。因此,当页面第一次呈现时,浏览器将解析表达式作为图像源,并返回404

Angular对
ng src
所做的是解析图像路径,并在计算表达式后更新
src
属性

但是,如果锚内有
href
,它只是字符串解析,浏览器不需要下载任何东西。计算表达式后,
href
属性将得到更新,浏览器将获得更改

在href属性中使用像{{phone.id}}这样的角度标记将使 如果用户在Angular创建链接之前单击该链接,则指向错误的URL 用它的值替换{{phone.id}}标记的机会。直到棱角 替换标记链接将断开并且很可能 返回404错误

ngHref指令解决了这个问题

错误的书写方式:

<a href="#/phones/{{phone.id}}">Possibly broken phone</a>
<a ng-href="#/phones/{{phone.id}}">Working phone</a>

正确的书写方法:

<a href="#/phones/{{phone.id}}">Possibly broken phone</a>
<a ng-href="#/phones/{{phone.id}}">Working phone</a>

这是AngularJS文档中的直接内容

在您的示例中,img src必须使用ng src,因为图像会在页面开始加载时自动加载,并且angular没有机会替换它。

来自ngSrc文件:

在href属性中使用像{{hash}}这样的角度标记将使 如果用户在Angular创建链接之前单击该链接,则指向错误的URL 用其值替换{{hash}}标记的机会

事实上,使用href是不安全的方法

但src不等待任何东西,浏览器在渲染时获取src-并引发异常