我目前正在将Google的嵌入式地图实施到项目中,并为其创建了角度指令。
我希望能够通过指令的属性更新正在使用的值的URL,但是在更改所选项目后,显示的值始终是当前所选值的后面一个。
这是我的链接功能:
function link (scope, element) {
makeIFrame(scope, element);
scope.$on('place-change', function () {
makeIFrame(scope, element);
});
}
我的makeIFrame功能:
function makeIFrame(scope, element) {
element[0].innerHTML = baseURL+scope.name +' '+ scope.zip;
}
这是问题的解决方案,我只是展示了我将使用的url示例: http://jsfiddle.net/t2GAS/60/
我也想知道在指令中执行这样的任务是否有更好的做法。
我尝试使用模板函数,但它没有访问传递的变量的值,而是尝试解析变量的名称。
编辑:
使用Phil的答案更新了jsfiddle:http://jsfiddle.net/t2GAS/64/
答案 0 :(得分:2)
更新到最近版本的Angular(1.3+)并将您的指令link
更改为使用$scope.$watchGroup
...
scope.$watchGroup(['name', 'zip'], function(values) {
element.text(baseUrl + values.join(' '));
});
这样做,您不再需要ng-change
上的<select>
指令